【问题标题】:PHP $_POST variable does not process input fields generated by JavascriptPHP $_POST 变量不处理 Javascript 生成的输入字段
【发布时间】:2011-08-29 17:08:22
【问题描述】:

我有两个文件(file1 和 file2)。 file1 在 PHP 包含语句中包含 file2。 File1 还包含一个表单并打印出所有 $_POST 变量。 File2 使用 Javascript 按钮动态更改输入字段中的值。问题是按下提交后 $_POST 为空。为什么会这样,我该如何解决?

文件1:

<form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
<?php include 'file2.php'; ?> 
<input type="submit" /></form>

<?php foreach ($_POST as $key => $val) { echo $key . " belongs to " . $val; } ?>

文件2

<script type="text/javascript">
        var button = {
        counter : 0,

            count : function() {
            text = document.getElementById("text");
            this.counter++;
            text.setAttribute("value", this.counter);
        }
    };
    </script>

<button type="button" onclick="button.count()">CLICK ME!</button>
<input id="text" type="text" value="0" />

【问题讨论】:

  • 您的输入需要一个 name 属性来在 PHP 处理输入时识别输入

标签: php javascript forms post


【解决方案1】:

你忘了设置name属性:

<input id="text" name="text" type="text" value="0" />

【讨论】:

  • 我觉得省略这个很愚蠢。我刚刚测试了它(我的实际代码)并添加名称参数解决了这个问题。非常感谢。
  • 享受吧!如果您发现任何答案有帮助,请记住在左侧打勾接受它(我写它是因为您尚未接受任何答案)。
【解决方案2】:
text.setAttribute("value", this.counter);

这样比较好:

text.value = this.counter;

你的元素还需要一个 name 属性:

<input id="text" name="text" type="text" value="0" />

【讨论】:

    【解决方案3】:

    您没有为“文本”字段设置名称属性。

    更正的代码:

    <input id="text" name="text" type="text" value="0" >
    

    【讨论】:

      猜你喜欢
      • 2011-09-13
      • 2021-11-17
      • 2012-08-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-04-10
      • 2014-05-15
      相关资源
      最近更新 更多