我正在測驗系統上工作。在此我想要做的是,這些問題正在從數據庫中收集並提出如下使用PHP:如何檢查單選按鈕是否被選中
<div class="span12" style="margin-top:140px;">
<ul id="part">
<?php //print_r($quiz);
$i = 1;
foreach($quiz as $quiz)
{
echo "<li id='div$i' style='display:none;'>
<p style='font-size:20px;'><strong>Question $i </strong>: $quiz->Question </p>
<br/><div style='margin-left:60px;font-size:14px;'>
<input type='radio' name='op11' id='op1$i' value='1' style='opacity: 0;'>$quiz->op1<br/><br/>
<input type='radio' name='op11' id='op2$i' value='2' style='opacity: 0;'>$quiz->op2<br/><br/>
<input type='radio' name='op11' id='op3$i' value='3' style='opacity: 0;'>$quiz->op3<br/><br/>
<input type='radio' name='op11' id='op4$i' value='4' style='opacity: 0;'>$quiz->op4<br/><br/></div>
</li>";
$i++;
}
?>
</ul>
<div class="span6">
<button id="next" class="btn btn-info btn-large" style="float:right;">Next → </button>
</div>
</div>
現在使用jQuery,當我點擊下一步按鈕,然後選擇答案的值放入數組命名爲答案。
當答案被選中時,數組正在創建糾正,但是當我沒有選擇任何答案時,然後前一個值被推入數組。
爲此我使用以下的jquery函數:
<script>
$(function(){
var items = $('ul#part li');
var answers = new Array();
if(items.filter(':visible').length == 0)
{
items.first().show();
}
$('#next').click(function(e){
//e.preventDefault();
var active = items.filter(':visible:last');
active.hide();
var val = $("input:radio[name=op11]:checked").val();
console.log(val)
answers.push(val)
var next = active.next();
if (next.length)
next.show();
else{
console.log(answers);
}
});
});
</script>
例如:我有三個問題,並在予選2分別2,3,1-然後答案回答的陣列是[, 3,1]這是正確的,但假設我沒有選擇任何問題的答案任何兩個,並且第一個和第三個問題的選擇答案分別爲2,3然後根據我的代碼創建的數組是[2,2,3] 。但我需要的是,當我不選擇任何答案時,那個答案的值應該是0意味着上面的例子數組應該是[2,0,3]
我該如何實現它,請幫助我糾正單選按鈕的代碼
沒有ID等於'op1 $ i'的元素 –
'
不是因爲$ i是一個php變量在一個循環內部,例如在第一次迭代ID時給出等於:'op11'然後是'op12'等......這就是說,這是一個很好的建議來檢查DOM節點的屬性'checked',就像在你的回答中一樣 –