私はこの質問をどのようにするかわかりません。私が信じる手続き的な質問です。PHPのフォームから複数の入力を処理する方法
<input type="hidden" name="1[]" value="dummy">
<input type="radio" name="1[]" value="5">
<label> Very Good </label>
<input type="radio" name="1[]" value="4">
<label> Good </label>
<input type="text" name="1[]" size="20">
<br>
<input type="hidden" name="2[]" value="dummy">
<input type="radio" name="2[]" value="5">
<label> Very Good </label>
<input type="radio" name="2[]" value="4">
<label> Good </label>
<input type="text" name="2[]" size="20">
$ _POST出力:私は構築し、これとINSERT文から
[1] => Array
(
[0] => Text misc
)
[2] => Array
(
[0] => 5
[1] =>
)
。
INSERT INTO coached_tracked (coached_id, value, note)
VALUES ($key, $value[0], $value[1]);
これは動的に生成されるフォーム入力です。ラジオボタン、テキストフィールドのペア。
ラジオが選択されておらず、テキストフィールドに値がある場合は、最初のインスタンスと同様に、どのように処理できますか。何も選択しないというオプションが必要なので、デフォルト値が必要ではないようです。ダミー値の有無にかかわらず試してみました(可能性のある解決策として隠れたフィールドを提案する例がありました)。
提案。
実際に入力名の末尾に '[]'を置くのは混乱していると思います。それは配列のように考えてください。フォームを送信すると、大括弧の前に同じ名前のフォーム要素がすべて取り込まれ、選択され、チェックされたり、値が含まれていたり(空であっても)、ゼロインデックス付き配列に追加されますサーバーに送信されます。どのようにして今持っているのですか?サーバ側で何が起こっているのかを実際には知ることは実際には不可能です。なぜなら、値のインデックス付き配列がゼロになるだけだからです。 – Mike
また、まったく同じ名前の2つのフォーム要素を持つことはできません(つまり、[]]を使用しない)。私はそれがあなたがやろうとしていることだと思います。 – Mike
同じ名前の配列を使用する理由は、その名前をデータベース挿入のIDキーとして使用するためです。ラジオとテキストのペアは1つのアイテム/ IDを構成します。無線の値とテキストの値は、追跡中のID項目に属する値です。たぶん私のプロセスは不良です。しかし、これは私がこれを行うことができると思った方法でした。しかし、私は問題に直面した。 –