@ebbk

Как сделать, чтобы все чекбоксы передались, если даже они не поставлены?

У меня есть такая форма, в которой все инпуты сделаны так [], чтобы в php я принимал его как массив:

<table>

<tr> 
<td>Config</td>
<td><input type="text" name="name[]"><</td>
<td><input  type="text" name="key[]"></td>
<td><input  type="checkbox" name="required[]"  value="0"></td>
</tr>

<tr> 
<td>Config</td>
<td><input type="text" name="name[]"><</td>
<td><input  type="text" name="key[]"></td>
<td><input  type="checkbox" name="required[]"  value="0"></td>
</tr>

<tr> 
<td>Config</td>
<td><input type="text" name="name[]"><</td>
<td><input  type="text" name="key[]"></td>
<td><input  type="checkbox" name="required[]"  value="0"></td>
</tr>
</table>

Вот так примерно выглядит в php:

<?php 
foreach ($_POST['name'] as $key => $value) {
   $array[] = ['
     name' => $value, 
    'key' => $_POST['key'][$key],  
    'required' => $_POST['required'][$key]
 ];
}
?>

Но всё это как-то неправильно работает. Чекбокс, то есть если там не установлена галочка, он не приходит, и всё путается. Как сделать, чтобы чекбокс отправлялся в любом случае, установлена галочка или нет?
Пробовал задать value="1", не помогает вообще.
  • Вопрос задан
  • 80 просмотров
Пригласить эксперта
Ответы на вопрос 2
@ebbk Автор вопроса
пришлось придумать такую штуку делать не checkbox а текст, при изменении менять значение в input через jquery
<table>
<tr> 
<td>Config</td>
<td><input type="text" name="name[]"><</td>
<td><input  type="text" name="key[]"></td>
<td><input type="checkbox" class="viev"> <input type="text" name="required[]" style="display: none;" class="main" checked></td>
</tr>

<tr> 
<td>Config</td>
<td><input type="text" name="name[]"><</td>
<td><input  type="text" name="key[]"></td>
<td><input type="checkbox"  class="viev"> <input type="text" name="required[]" style="display: none;" class="main" checked></td>
</tr>

<tr> 
<td>Config</td>
<td><input type="text" name="name[]"><</td>
<td><input  type="text" name="key[]"></td>
<td><input type="checkbox" class="viev"> <input type="text" name="required[]" style="display: none;" class="main" checked></td>
</tr>
</table>

<script type="text/javascript">
	$('.viev').change(function(){
		if ($(this).closest('td').find('.main').val() == '0') {
			$(this).closest('td').find('.main').val('1');
		} else {
			$(this).closest('td').find('.main').val('0');
		}
	});
</script>
Ответ написан
Комментировать
v3shin
@v3shin
Веб-шаман
'required' => +isset($_POST['required'][$key]),
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы