0

while ループによって作成および設定されているテーブルがあります。while ループは、mysql データベースから結果を取得して表示しています。

以下のコードのように、各行にチェックボックスがあり、値は一意の識別子と同じloadnumberです。

次の列は、 の名前と ID を持つ入力ボックスですcorrectedweight。この値は、MySQL データ値によって事前定義されています。次の列は名前付きの選択ボックスでcorrectedtrailer、選択された値はデータベースの結果と同じです。

私のSQLクエリの結果には多くの行が含まれているため、テーブルの深さは数行です。私がやりたいことは、ユーザーがチェックボックスをオンにして、同じ行のと checkbox[]の値を変更してからフォームを送信できるようにすることです。問題は、複数の行がある場合、すべての行の名前がす​​べて同じであるため、それらを区別できないことです。correctedweightcorrectedtrailercorrectedweightcorrectedtrailer

<? 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ループで構築されたテーブルとして一意の識別子が必要です。再度、感謝します。 ここに画像の説明を入力

4

1 に答える 1

2

私が見ることができるものから、データベースエントリをループしています。すべてのフィールドで負荷番号を識別子として使用し、投稿でループして、上記のように追加することをお勧めします。

このようなもの:

<td><input type="checkbox" name="checkbox[<? echo $row['loadnumber']; ?>]" id="checkbox[<? echo $row['loadnumber']; ?>]" value="<? echo $row['loadnumber']; ?>"></td>
<td><input type="text" name="correctedweight_<? echo $row['loadnumber']; ?>" id="correctedweight_<? echo $row['loadnumber']; ?>" value="<? echo $row['weight']; ?>" class="inputsmall"></td>
<td><SELECT name="correctedtrailer_<? echo $row['loadnumber']; ?>" id="correctedtrailer_<? echo $row['loadnumber']; ?>"  class="selectnarrow"> 
    <option value="<? echo $row['trailer']; ?>" selected ><? echo $row['trailer']; ?></option>
    <option><?=$optionstrailer?></option>
</SELECT> 

投稿のチェックボックスごとに情報を取得する:

foreach($_POST['checkbox'] as $checkbox){
    $correctedweight = $_POST['correctedweight_$checkbox'];
    $correctedtrailer = $_POST['correctedtrailer_$checkbox'];
}

私が正しいことを覚えている場合にのみ、チェックされたチェックボックスが表示されることを忘れないでください:)

これが役に立てば幸いです、頑張ってください!

于 2013-02-15T08:40:34.527 に答える