如何在PHP,HTML表单和Javascript之间传递布尔值

rob*_*485 6 html javascript php forms boolean

我有一个PHP程序,它使用HTML表单并使用JavaScript进行验证.HTML表单中有一个隐藏字段,其中包含一个由PHP设置的布尔值,在JavaScript提交时验证,并传递给另一个PHP页面.

当我尝试使用PHP布尔值来设置HTML字段的值时,JavaScript将其评估为空白,因此我使用了1和0并将它们用数字进行比较,现在它工作正常.

我的问题是:这种情况下的最佳做法是什么?如何在不使用1和0的情况下让PHP在PHP驱动的HTML隐藏字段中读取true/false值?或者这只是一个坏主意?

Ben*_*upp 9

好消息是PHP和JavaScript对于哪些值是真和假有类似的想法.

  • 双方都是空字符串.其中包含某些内容的字符串(0PHP 除外)在双方都是正确的.
  • 0双方的数字都是假的.所有其他数字在双方都是正确的.

由于表单的值总是字符串,正如Quentin在他的回答中所指出的,一个好的做法可能是使用空字符串作为假值而其他东西(例如'true')作为真值.但我认为你使用01测试数值的方法是最安全的方法,因为它没有误导性.(当有人看到'true'他们可能认为'false'也可用于虚假价值.


Que*_*tin 5

表单控件的值将始终为字符串.

如果你想要一个布尔值,那么你必须对其进行编码,不知何故,然后分析它以某种方式.

使用0或1是一种非常好的方法.你也可以使用truefalse(你可以json_encode在PHP端使用它生成)并运行值JSON.parse.沿着类似的路线还有许多其他选择.