【问题标题】:javascript value not picked up by phpphp 未获取 javascript 值
【发布时间】:2011-06-24 15:59:39
【问题描述】:

我有一个表单,其中两个表单的值通过 javascript 获取它们的值。这些文件的值最终应保存在数据库中。
文本字段的值不应该适合普通用户,所以我使用了这种代码:
<input type="text" name="total" id="total" disabled="disabled" value="0"> EUR

很奇怪,数据库中的值现在是0
当我删除disabled="disabled时,数据库中的值是正确的。

这是怎么发生的?是否有可能阻止您的客户修改输入字段的内容,同时仍然在数据库中获取 wright 值?

【问题讨论】:

  • 请重新格式化你的问题,我不明白你在问什么。
  • 你明确地说 value="0" - 为什么你的数据库中的值是 0 很奇怪?
  • 0 是默认值。重点是将值替换为 javascript 文件中的内容。
  • 听起来你想向他们展示数据而不是让他们编辑它。它是否正确?如果是这样,为什么要把它放在输入字段中?发送给客户的任何内容都可以更改,因此请务必考虑到这一点。
  • 您还有其他方法可以建议我吗?

标签: php javascript database


【解决方案1】:
<input type="text" name="total" id="total" readonly="readonly" value="0"> EUR

改用只读属性。

Disable 就像它听起来的那样,它禁用该字段并且信息不会通过表单发送到服务器端脚本。因此,服务器端脚本在读取该变量时将变为 null。

至于你的第二个问题,你不应该依赖这样的客户端验证(javascript)。这样做很好,但你也应该在服务器端做。这背后的原因是因为您无法 100% 控制客户端计算机上发生的事情(用户可以在数据包级别进行修改并绕过您实施的任何客户端验证)。

【讨论】:

    【解决方案2】:

    提交表单时不会传递禁用的值。你要使用的是readonly="readonly"

    【讨论】:

    • 谢谢,这对我帮助很大!
    【解决方案3】:

    当您在输入字段上设置“禁用”标志时,它会阻止将该字段提交到 Web 服务器 - 就 PHP 而言,它不存在。请改用readonly="readonly"

    【讨论】:

      【解决方案4】:

      disable 标记禁用文本框。因此用户现在不能输入新值,其值为“o”。 如果您删除它,实际值将替换它。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-07-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-01-12
        • 1970-01-01
        相关资源
        最近更新 更多