while ループによって作成および設定されているテーブルがあります。while ループは、mysql データベースから結果を取得して表示しています。
以下のコードのように、各行にチェックボックスがあり、値は一意の識別子と同じloadnumber
です。
次の列は、 の名前と ID を持つ入力ボックスですcorrectedweight
。この値は、MySQL データ値によって事前定義されています。次の列は名前付きの選択ボックスでcorrectedtrailer
、選択された値はデータベースの結果と同じです。
私のSQLクエリの結果には多くの行が含まれているため、テーブルの深さは数行です。私がやりたいことは、ユーザーがチェックボックスをオンにして、同じ行のと checkbox[]
の値を変更してからフォームを送信できるようにすることです。問題は、複数の行がある場合、すべての行の名前がすべて同じであるため、それらを区別できないことです。correctedweight
correctedtrailer
correctedweight
correctedtrailer
<? while($row = $loads->fetch(PDO::FETCH_ASSOC)) { ?>
<tr>
<td><input type="checkbox" name="checkbox[]" id="checkbox[]" value="<? echo $row['loadnumber']; ?>"></td>
<td><input type="text" name="correctedweight" id="correctedweight" value="<? echo $row['weight']; ?>" class="inputsmall"></td>
<td><SELECT name="correctedtrailer" id="correctedtrailer" class="selectnarrow">
<OPTION value="<? echo $row['trailer']; ?>" selected ><? echo $row['trailer']; ?></option>
<option>
<?=$optionstrailer?>
</option>
</SELECT>
</td>
</tr>
これを修正するには、loadnumber を各入力フィールドの名前と ID に追加できますか?
<input type="text" name="correctedweight<? echo $row['loadnumber']; ?>" id="correctedweight<? echo $row['loadnumber']; ?>" value="<? echo $row['weight']; ?>" class="inputsmall">
これにより、フォームの各入力に一意の名前が付けられます。次の質問は、選択した行のこの名前をどのように呼び出すかです。checkbox[]
配列には負荷番号が含まれているため、ステートメントforeach($_POST['checkbox'] as $checkbox){
で の値を取得するにはどうすればよい correctedweight<? echo $row['loadnumber']; ?>
ですか? それは $_POST['correctedweight.$checkbox'] ですか、それともどのように機能しますか?
さらに、これはこれを行う最良の方法ですか?
いつものように感謝します。ありがとう
私のフォームの画像、入力および選択フィールドにMySQLデータが事前入力されています。複数のテーブル行を一度にチェックおよび編集する機能が必要ですが、while
ループで構築されたテーブルとして一意の識別子が必要です。再度、感謝します。