在我的PHP代码中,我的动态文本框很少。我通过echo给出了名字,
for($i=1; $i<=5; $i++) {
echo "<td><input type='text' name='avar[$i]'/></td>";
}
此动态文本框位于表单标记下。提交后我想收到动态生成的文本框中输入的值。我试过这种方式,
for($i=1; $i<=5; $i++) {
echo $_POST['avar'].[$i];
}
但会导致错误“注意:未定义的偏移量:1”。请建议
答案 0 :(得分:1)
您正在尝试访问未定义的索引。
请改为尝试:
for($i=1; $i<=5; $i++) {
echo $_POST['avar'][$i];
}
工作版:
<?php
if(isset($_POST['submit'])) { //check if form submitted
for($i=1; $i<=5; $i++) {
echo $_POST['avar'][$i];
}
}
?>
<!-- form begin -->
<form action="" method="post">
<?php
for($i=1; $i<=5; $i++) {
echo "<td><input type='text' name='avar[$i]'/></td>";
}
?>
<input type="submit" name="submit"/>
</form>
<!-- form end -->
答案 1 :(得分:1)
在表单中,您不需要为数组指定索引值。您可以为每个字段留下空括号:
for($i=1; $i<=5; $i++) {
echo "<td><input type='text' name='avar[]'/></td>";
}
要检索值:
if (isset($_POST['avar'])){
foreach ($_POST['avar'] as $key => $value){
echo $value;
}
}
答案 2 :(得分:0)
在动态创建的html中,您指定为输入标记名称的是:
"avar[" . $i . "]"
当你想要检索它时,你应该使用:
$_POST['avar[' . $i . ']']
但是对于haml标记名称使用数组之类的名称并不是一个好主意。因为你不能将标签名称设置为数组,并在发布时将它们像数组一样进行检索。