0

こんにちは私はフォームから情報を表示しようとしています。質問の数と選択肢の数はユーザーによって動的に生成されます。フォームは次のとおりです。

<input name='questions[]' type='text' value='question 1' /><br/>
   <input name='choice[1-1][]' type='text' value='option 1' /><br/>
   <input name='choice[1-1][]' type='text' value='option 2' /><br/>
   <input name='choice[1-1][]' type='text' value='option 3' /><br/>
<input name='questions[]' type='text' value='question 2' /><br/>
   <input name='choice[2-1][]' type='text' value='option 1' /><br/>
   <input name='choice[2-1][]' type='text' value='option 2' /><br/>
   <input name='choice[2-1][]' type='text' value='option 3' /><br/>

等...

フォームを生成するためのコードを作成することに問題はありませんでした。私の問題は、usesがフォームに入力する情報を表示することにあります。

これまで、foreachループを使用して質問を表示し、次に別のforeachループを使用して選択肢を表示しようとしました。また、count()を使用してから、forループを使用して選択肢の数をカウントし、その方法で出力しようとしましたが、成功しませんでした。

私の問題は、選択肢を表示しようとすると、次の質問が表示される前にすべてが表示され、スクリプトが次の質問に移動する前に、すべての選択肢が再び表示されることです。

4

1 に答える 1

0

あなたの意図した結果はあまり明確ではありませんが、ここにあなたがやろうとしていることのアイデアがあります.

$i=1;
foreach ($questions as $question){
echo $question;
echo "<br />";
foreach($choice[$i.'-1'] as $choices){
echo '-'.$choices.'<br />';
}
echo "<br />";
$i++;
}

コードに基づいて、<form>投稿されると、次のような配列になります-

$questions = array('question 1', 'question 2');
$choice['1-1']= array('option 1','option 2','option 3');
$choice['2-1']= array('option 1','option 2','option 3');

したがって、foreachこれらの配列で を使用すると、次の出力が得られます -

question 1
-option 1
-option 2
-option 3

question 2
-option 1
-option 2
-option 3

phpfiddle はhttp://phpfiddle.org/main/code/i4f-k7wで確認できます。

于 2012-12-04T22:03:09.157 に答える