2017-06-15 11 views
1

私はアイテムのリストを生成するフォームを持っており、それぞれのアイテムに1-5のスコアを与えることができます。各項目は、別の表の同じIDを介してリンクされている1つの表のdb挿入を表します。私は同じ名前のラジオボタンをすべて持っている必要があります。私はちょっと調べて、あなたはそれらを配列として指定できることを知りました。私の問題は、レポートを提出したいグループに応じて、フォームテーブルの項目数が異なることです。項目、スコア[0]、スコア[1]によって異なる名前にすることはできません]など配列と同じ名前のラジオボタン

HTML

<tr> 
    <th>Indicador</th> 
    <th>Peso</th> 
    <th>Avaliação</th> 
</tr> 
<?php foreach($indicators as $indicator): ?> 
    <?php echo "<tr> 
     <td>". $indicator->indicator_name ."</td> 
     <td>". $indicator->weight*100 ."%</td> 
     <td> 
      <label> 
       1 <input value='1' name='score[]' type='radio'> 
      </label> 
      <label> 
       2 <input value='2' name='score[]' type='radio'> 
      </label> 
      <label> 
       3 <input value='3' name='score[]' type='radio'> 
      </label> 
      <label> 
       4 <input value='4' name='score[]' type='radio'> 
      </label> 
      <label> 
       5 <input value='5' name='score[]' type='radio'> 
      </label> 
     </td> 
    </tr>"; 

?> 
<?php endforeach; ?> 

あなたはおそらく、すでに私は別の項目のラジオボタンをクリックするたびに言うことができるように、以前の項目が選択されていない取得します。これを達成するにはどうすればいいですか?また、任意の代替解決策が認められる。どんな助けでも大歓迎です。

+0

毎回ラジオボタンを増分します。 "スコア" $ i。 "[]'、各回の$ iをインクリメント – clearshot66

+0

はい、あなたのソリューションはうまくいきます。ご協力いただきありがとうございます。 –

答えて

0

アレイ内でアイテムのID($indicator)を設定できます。

我々は、idはあなたのコードは、このようにすることができ$indicator->idであると仮定した場合:フォーム後

<tr> 
<th>Indicador</th> 
<th>Peso</th> 
<th>Avaliação</th> 
</tr> 
<?php foreach($indicators as $indicator): ?> 
<?php echo "<tr> 
    <td>". $indicator->indicator_name ."</td> 
    <td>". $indicator->weight*100 ."%</td> 
    <td> 
     <label> 
      1 <input value='1' name='score[".$indicator->id."]' type='radio'> 
     </label> 
     <label> 
      2 <input value='2' name='score[".$indicator->id."]' type='radio'> 
     </label> 
     <label> 
      3 <input value='3' name='score[".$indicator->id."]' type='radio'> 
     </label> 
     <label> 
      4 <input value='4' name='score[".$indicator->id."]' type='radio'> 
     </label> 
     <label> 
      5 <input value='5' name='score[".$indicator->id."]' type='radio'> 
     </label> 
    </td> 
</tr>"; 
endforeach; ?> 

はあなたが別のPHPスクリプトに次のように受け取ることができ提出:

echo $_POST['score'][$indicator->id]; 
+0

はい、動作します。私は休憩を取る必要があります。ありがとうございます<3 –

+0

あなたは歓迎です、トマス! :) –

2

数値の代わりに$indicator->indicator_nameを使用してください。行に固有のものであれば、一意の識別子であれば何でも構いません。

-1

あなたはすべてのあなたを生成することがありました指定された値を配列で指定してPHPを使用するラジオボックス(以下の例を参照):

<?php 

$values = array("value-1", "value-2", "value-3", "value-4"); 

foreach ($values as $radio) { 

    echo "<label><input name='score[]' type='radio'></label>"; 

} 

?> 

これは、たくさんのラベル要素を書き、それらに値を割り当てる手間を省きます。

関連する問題