これが私のフォームのスナップショットです。LPO の下の入力値 (1 列目) は非表示になっています。完全なフォームを示すためにここに表示しました。
color_id (入力ボックスの左端) が 37 の場合、その DB 値はBB552
表示どおりです。3 の場合、その色の値は ですがBB110
、0 の場合は、ユーザーがカスタムを選択し、3 行目に自分で値を書き込んだことを意味しますFFBBBAA
。
フォームを PHP に送信する必要があります
フィールド名は次のとおりです。
color_id[] <-- Hidden input
order_id[] <-- Hidden input
subcolor_id[] <-- Select
subcolor_string[] <-- Input
material_id[] <-- Select
weight[] <-- input
フォームを投稿すると、PHPで
<?PHP
$count = count($_POST['weight']);
for($i = 0; $i < $count; $i++){
$color_id = $_POST['color_id'][$i];
$order_id = $_POST['order_id'][$i];
$material_id = $_POST['material_id'][$i];
$weight = $_POST['weight'][$i];
// i can count one post item and can iterate over all.
if($color_id == 0){
$color_id = $_POST['subcolor_id'][$i]; // this give me wrong result;
}
}
したがって、0 が存在する場合、管理者はこのフォームを承認し、カスタムのままにするか、色を DB からの値に戻すことができます。
color_id
最初の非表示の入力が 0の場合、適切なサブカラー値を取得する可能性を知りたいです。
del sub color
これまでのところ、サブカラー列に隠しフィールドを 2 つ追加してインデックスに一致させることを考えていましたが、これにはコードを完全に書き直す必要があります。
このフォームに多くの変更を加えないようにする他の方法はありますか?