我正在研究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"
答案 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代码中使用默认值。