Всем доброе утро!
Задача следующая: есть чекбоксы, которые динамически добавляются на страницу, т.е, есть таблица с пользователями и у каждого из них существует свой чекбокс.
Данные передаются массивом, и в обработчикt foreach() получает ключ => значение.
Динамический чекбокс:
<input type="checkbox" id="iddd" name="group[]" value="'.$row['ID'].'" />
Обработчик.
foreach($_POST['group'] as $key => $value) {
echo $key.'=>'.$value.'<br>';
}
В результате, foreach() возвращает:
0 => 12
1 => 35
2 => 46 и т.д.
Надумал сделать передачу данных AJAX-ом, сразу столкнулся с методом записи JSON, вроде бы разобрался. Но не так всё просто.
Вот скрипт:
<script type="text/javascript">
$(document).ready(function(){
$('#insert').click(function(){
var formData = { "group":$("#iddd").attr('name')};
$.ajax({
url:'actions_stud_group.php'
, type:'POST'
, data:'jsonData=' + $.toJSON(formData)
, success: function(data) {
$('#res').html(data);
}
});
return false;
});
});
</script>
Вот php-обработчик:
$data = json_decode($_POST['jsonData']);
$response = 'Retrieved parameters '.count($data).'<br>';
foreach ($data as $key=>$value) {
$response .= 'Parameters: '.$key.'; Keys: '.$value.'<br>';
}
echo $response;
Проблема заключается в том, что AJAX не хочет передавать массив name="group[]" . Т.е в результате, скрипт выдает ошибку:
Warning: Invalid argument supplied for foreach()
Т.е foreacc() не получает ключ-значение.
Как передать AJAX-ом массив ?!