【问题标题】:How to pass boolean values between PHP, HTML forms, and Javascript如何在 PHP、HTML 表单和 Javascript 之间传递布尔值
【发布时间】:2017-09-14 06:16:37
【问题描述】:

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

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

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

【问题讨论】:

    标签: javascript php html forms boolean


    【解决方案1】:

    好消息是 PHP 和 JavaScript 对什么是真值和什么值有相似的想法。

    • 空字符串两边都为假。包含某些内容的字符串(PHP 中的 0 除外)在两边都是 true。
    • 号码0 两边都是假的。所有其他数字在两边都是正确的。

    由于表单的值始终是字符串,正如 Quentin 在他的回答中指出的那样,一个好的做法可能是使用空字符串作为假值,使用其他东西(例如 'true')作为真值。但我认为您使用01 并测试数值的方式是最安全的方法,因为它不会产生误导。 (当有人看到'true' 时,他们可能会认为'false' 也可用于错误值。

    【讨论】:

      【解决方案2】:

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

      如果你想要一个布尔值,那么你必须以某种方式对其进行编码,然后以某种方式对其进行解析。

      使用 0 或 1 是一个非常好的方法。您还可以使用truefalse(可以在PHP 端使用json_encode 生成)并通过JSON.parse 运行该值。还有许多其他类似的选择。

      【讨论】:

      • 你能写出我们如何将字符串编码为 html 中的布尔值,然后将数据传递给 php 脚本吗?
      • @WijaySharma — 我做到了。阅读答案的最后一段。
      猜你喜欢
      • 2011-12-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-12-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多