【问题标题】:html form hidden variable not showing in phphtml表单隐藏变量未在php中显示
【发布时间】:2011-08-22 13:09:27
【问题描述】:

我有一个提交给 PHP 的 HTML 表单。下拉框上有一个 onChange 事件,该事件调用 JavaScript 函数,该函数将隐藏变量写入表单。但是这个额外的隐藏变量并没有出现在 PHP 中,这是为什么呢?

所以;

<script language="JavaScript">
function change() {
  document.getElementById("myDiv").innerHTML="<input type=\"hidden\" name=\"blah\" value=\"1\"/>";
  return;
}
</script>

<form method="post" action="test.php" />
<select name="cid" id="cid" onChange="change();">
<option value="lala">lala</option>
</select>
<div id="myDiv"></div>
</form>

PHP 没有看到 $_POST['blah']?

【问题讨论】:

  • 很难看出错误在哪里。请粘贴调用 onChange 函数的代码。而且我看不到任何提交表单的提交按钮。顺便说一句,它是:
  • 好的,我已经添加了更多代码来显示发生了什么,它的表格很长,所以我试着删掉一些其他的废话。

标签: php javascript html variables hidden


【解决方案1】:

无论如何,更合乎逻辑的解决方案是将隐藏字段添加到表单中,并在 onChange 函数中将 value 设置为 1。

【讨论】:

  • 我没有这样做,因为如果下拉框没有改变,我不希望变量在那里,但这种方式有效,所以谢谢:D
【解决方案2】:

您一定是设置了错误,当我测试它时它确实可以正常工作。 您确定在提交表单之前调用该方法吗?

【讨论】:

    【解决方案3】:

    我看不到你正在执行你的 change() 函数。

    【讨论】:

    • 正如我所说,该函数是由下拉框的onChange事件调用的,我可以看到页面中的代码变化。
    • 我认为将字段添加到 DOM 不会使浏览器将其隐式添加到它在内存中的表单中。如我的回答所述;从一开始就在表单中设置字段并使用 JS 设置值会更有意义。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-10-18
    • 1970-01-01
    • 1970-01-01
    • 2010-10-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多