проверка в javascript для цикла php

#javascript #php #validation

#javascript #php #проверка

Вопрос:

Я пытаюсь выполнить простую проверку в javascript для foreach в php, но я не знаю, как анализировать каждую строку из представления

 <table>
<?php $i=1; ?>
 <?php foreach($questions $row): 
 ?>
<tr><td colspan="2"><?php echo $i  ; ?><?php echo  $row->question;?></td></tr>
<tr><td colspan="2"><?php echo  $row->category;?></td></tr>
    <tr><td colspan="2"><?php echo  $row->id;?></td></tr>
<tr>
<td><input type="checkbox" id="r" value="<?php echo  $row->var_1;?>"></td>
<td class="answer"><?php echo  $row->var_a;?></td>
</tr><tr>
<td><input type="checkbox" id="r" value="<?php echo  $row->var_2;?>"></td>
<td class="answer"><?php echo  $row->var_b;?></td>
</tr><tr>
<td><input type="checkbox" id="r" value="<?php echo  $row->var_3;?>"></td>
<td class="answer"><?php echo  $row->var_c;?></td?
</tr> 
<?php endforeach; ?>
</table>
<button type="button" id="submit">Send</button>
  

И в javascript я стараюсь проверять каждый ответ на каждый вопрос.

 <script>
    $("#submit").on("click", function(){     
     var x=0;
        if(document.getElementById("r").checked == true document.getElementById("r").value == 1){
            x=x 1;
        }
}); 
</script>
  

Каждый ответ имеет значение 1 или 0, и он может быть множественным выбором.

Комментарии:

1. Почему бы вам не проверить это на PHP, а не затирать его в JS?

2. Потому что, если это правильный ответ, я хочу добавить цветной фон для ответа..

Ответ №1:

  1. Идентификаторы должны быть уникальными — вместо этого используйте class или name
  2. если у вас есть jQuery, ИСПОЛЬЗУЙТЕ jQuery

 $("#submit").on("click", function(e){     
 var x=$(".r:checked").length; // using class="r"
 if (x < $(".r").length) {
   alert("Please check all checkboxes");
   e.preventDefault();
 }
}); 
  

или с помощью name=»r»

 $("#submit").on("click", function(e){     
 var x=$('input[name="r"]:checked').length; 
 if (x < $('input[name="r"]').length) {
   alert("Please check all checkboxes");
   e.preventDefault();
 }
});