【问题标题】:PHP Getting the value after submit of array variablesPHP在提交数组变量后获取值
【发布时间】:2013-08-16 19:19:07
【问题描述】:

在我的 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”。请推荐

【问题讨论】:

  • 试试 print_r($_POST['avar']) ;或 print_r($_POST)。你能发布这个结果吗?
  • @user2431351:见下面我的answer

标签: php html dynamic wamp


【解决方案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 -->

【讨论】:

  • @user2431351:尝试完整代码。表单提交给自己。我在这里测试过,它工作正常。
  • 工作感谢。又犯了一个愚蠢的错误。无论如何,谢谢。
【解决方案2】:

在您的表单中,您不需要为数组分配索引值。您可以为每个字段留下空括号:

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;
    }
}

【讨论】:

    【解决方案3】:

    在您动态创建的 html 中,您指定为输入标签的名称是:
    "avar[" . $i . "]"
    当你想检索它时,你应该使用:

    $_POST['avar[' . $i . ']']
    

    但是对于haml标签名称使用类似名称的数组并不是一个好主意。因为您不能将标签名称设置为数组并在发布它们时像数组一样检索它们。

    【讨论】:

      猜你喜欢
      • 2016-04-23
      • 1970-01-01
      • 1970-01-01
      • 2021-09-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-03-18
      • 1970-01-01
      相关资源
      最近更新 更多