PHP POST总是得到HTML表单的默认值

时间:2014-02-18 11:50:26

标签: php html forms post

我正在研究20年前的PHP代码的一些扩展。现在,我需要添加一个新的文本输入字段,并像所有以前存在的文本输入字段一样处理数据。除了这个新输入外,Evrything工作正常。

我有一个HTML表单:

<form action="form.php?<?php echo SID; ?>" method="post">
  <?php echo "<div id=\"inputheader-title\"><input type=\"text\" name=\"".$new.$i.'[position_new]'."\" size=\"3\" maxlength=\"2\" value=\"".$i."\">. Entry</div>"; ?>
  [...]
<input class="button" type="image" src="<?php echo $HTML_IMG; ?>/send.png">
</form>

[...]表示更多输入字段,这些字段都正常工作。所有文本输入字段都使用相同的模式。

浏览器中文本字段的源代码如下所示:

<input type="text" name="old1[position_new]" size="3" maxlength="2" value="1">

这对我来说很好看。但是当我发送表单数据时, old1 [position_new] 的值在PHP的$_POST中始终是默认值。所有其他数据都是正确的(插入到表单字段中)。我用var_dump($_POST)

检查了一下

当我检查浏览器发送的数据时,我可以看到修改后的值,但是当涉及到PHP时,数据似乎被改变了,尽管它没有被进一步处理。

简而言之: 我输入了:3

默认值为:["position_new"]=> string(1) "1"

浏览器显示:["position_new"]=> string(1) "3"

var_dump($_POST) shows: ["position_new"]=> string(1) "1"

1 个答案:

答案 0 :(得分:1)

PHP将名称中[]的字段转换为数组。如果您不想这样做,请从字段名称中删除[]

<?php
  var_dump($_REQUEST);
  echo '<pre>'.print_r($_REQUEST,true).'</pre>';
?>
<form action="/test.php" method="post" name="myform">
  <input type="text" name="old1[position_new]" size="3" maxlength="2" value="1">
  <input type="text" name="old1[art]" size="15" maxlength="50" value="Lecture">
  <input type="submit" name="save" value="save">
</form>

在此示例中,使用您的字段名称,可以正确填充数组。 检查具有相同名称的重复字段,并在html代码中使用默认值。