0

一意の名前タグに基づいて名前を動的に出力するフォームがあります。招待状への返信に使用されます。名前タグごとに複数のユーザーが存在する可能性があります。つまり、カップル、子供を持つカップルなどです。名前ごとに、招待者がパーティーに参加するかどうかを選択できるラジオボタンがあります(値は1 =来ない、2 =来る)。いくつかの場合、次のようになります。

Lady Mary S
I am not coming         - radio - value 1
I am coming             - radio - value 2

Mister Hans S
I am not coming         - radio - value 1
I am coming             - radio - value 2

Child of Mary & Hans S
I am not coming         - radio - value 1
I am coming             - radio - value 2

これらの招待者にはそれぞれユーザーIDがあります。応答はユーザーIDである必要があります。そのためのHTMLは次のようになります。

<div>
<h1>Lady Mary S</h1>
<label for="no-1">I am not coming</label>
<input type="radio" value="1" id="no-1" name="response[1]" /><br />
<label for="yes-1">I am coming</label> 
<input type="radio" value="2" id="yes-1" name="response[1]" />
<input type="hidden" name="userid[]" value="1" />
</div>

<div>
<h1>Mister Hans S</h1>
<label for="no-2">I am not coming</label>
<input type="radio" value="1" id="no-2" name="response[2]" /><br />
<label for="yes-2">I am coming</label> 
<input type="radio" value="2" id="yes-2" name="response[2]" />
<input type="hidden" name="userid[]" value="2" />
</div>

<div>
<h1>Child of Mary & Hans S</h1>

<label for="no-3">I am not coming</label>
<input type="radio" value="1" id="no-3" name="response[3]" /><br />
<label for="yes-3">I am coming</label> 
<input type="radio" value="2" id="yes-3" name="response[3]" />
<input type="hidden" name="userid[]" value="3" />
</div>

これらの名前は、これら3人の一意の名前タグであるfxを使用してMySQLから取得されます。MARHAN

これは動的な形式です。一部の名前タグには2人の招待者のみが存在し、他の名前タグには3人または4人などが存在します。

私の問題は、投稿されたデータを処理する方法について解決策を思い付くことができないため、適切なユーザーIDに対する応答であることを確認できることです。

4

2 に答える 2

2

あなたに必要なのは

foreach($_POST['response'] as $userid => $value) {
      echo $userid.'-'.$value."<br>";
}

あなたはすでにuserid in keyラジオボタンの名前を持っているのでname="response[1]"

于 2012-11-14T12:19:14.123 に答える
0

ただのアイデア:各入力の値を「answer-userId」のようなものにするのはどうですか。例えば:

<input type="radio" value="1-333" id="no-3" name="response[]" /><br />

次に、phpに投稿された値を「-」で分割し、回答(1)とユーザーID(333)を取得できます。

于 2012-11-14T12:20:33.247 に答える