1

次のように、最後に同じ入力名+ idのフォームを投稿します。

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

それらのそれぞれをループして、ループ内のIDを取得するにはどうすればよいですか?

私はこの方法を試しましたが、データなしで多くのループが発生し、さらに 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];

それは正しい方法ではありません。$_POST["machine_".$i]toの値を保存して、$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 に答える