2017-06-15 53 views
1

我有一個生成項目列表的表單,我希望能夠爲每個項目分配1-5的分數。每個項目表示一個表中的db插入,它通過另一個表中的相同id鏈接。我需要具有相同名稱的所有單選按鈕。我研究了一下,發現可以將它們命名爲數組。我的問題是,表格所具有的項目數量會有所不同,具體取決於希望提交報告的小組,並且我不能根據項目評分[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>"; 

} 

?> 

這樣可以節省您編寫大量標籤元素併爲其分配值。