1

我在最后发布了一个具有相同输入名称+ id的表单,如下所示:

<input type="text" name="machine_1">
<input type="text" name="machine_11">
<input type="text" name="machine_23">

如何循环遍历它们并在循环中获取 id?

我试过这种方式,但它会在没有任何数据的情况下循环很多,如果有更多的thank 100 id会发生什么?

for($i=0; $i<100; $i++){

$_POST["machine"]=$_POST["machine_".$i];

$id=$i;

}
4

4 回答 4

1

POST是一个关联数组,因此您可以像这样遍历发布的所有内容:

//$k contains the id
//$v contains the submitted value
foreach($_POST as $k => $v) {
    //test if id contains 'machine'
    if(stristr($k, 'machine')) {
        echo $v;
    }

}
于 2013-09-24T16:50:56.307 回答
0

您可以使用 foreach 循环执行此操作,如下所示:

foreach($_POST as $key => $value) {
  echo "POST parameter '$key' has '$value';
}
于 2013-09-24T16:46:47.177 回答
0

在您的代码中,您有:

$_POST["machine"]=$_POST["machine_".$i];

这不是正确的方法。您想存储 to 的值,$_POST["machine_".$i]然后$id在下面使用它。

这可能是您需要的:

for($i=1; $i<100; $i++){
    $id = $_POST["machine_".$i]; 
    echo $id;
}

如果有超过 100 个元素,并且您不知道输入的数量,那么您可以使用foreach循环,如下所示:

$i = 1; // counter variable
foreach ($_POST as $key => $input) {
    if($key == "machine_".$i) {
        $id = $input; // or simply 'echo $input'
        echo $id;
    }
    $i++; // increment counter
}
于 2013-09-24T16:47:04.747 回答
0
$_POST["machine"]=$_POST["machine_".$i];

这里 $_POST['machine'] 表示注意..如何为 $_POST['machine'] 赋值..您在提交表单时没有传递任何具有名称machine的元素..所以首先您需要检查兄弟

于 2013-09-24T16:47:10.143 回答