PHP $_POST变量无法处理由Javascript生成的输入字段

3

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

File1:

<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" />

3
在PHP处理输入时,您的输入需要一个名称属性来标识它。 - KJYe.Name
3个回答

5

你忘记设置name属性:

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

我因为漏掉这个而感到非常愚蠢。我刚刚测试了一下(我的实际代码),添加了名称参数解决了这个问题。非常感谢。 - Daniel Kats
享受吧!如果你发现任何答案有帮助,请在左侧打勾接受它(我提到这个是因为你还没有接受任何答案)。 - hsz

2
text.setAttribute("value", this.counter);

这句话最好改成:

text.value = this.counter;

同时,您需要在元素上添加一个名称属性:
<input id="text" name="text" type="text" value="0" />

0

你没有为字段“text”设置名称属性。

更正后的代码:

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接