PHP在提交数组变量后获取值

时间:2013-08-16 19:19:08

标签: php html dynamic wamp

在我的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”。请建议

3 个答案:

答案 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标记名称使用数组之类的名称并不是一个好主意。因为你不能将标签名称设置为数组,并在发布时将它们像数组一样进行检索。