Показать сообщение отдельно
  #1 (permalink)  
Старый 09.02.2011, 10:48
Новичок на форуме
Отправить личное сообщение для RCuPeR Посмотреть профиль Найти все сообщения от RCuPeR
 
Регистрация: 24.01.2011
Сообщений: 8

Массив AJAX + JSON
Всем доброе утро!
Задача следующая: есть чекбоксы, которые динамически добавляются на страницу, т.е, есть таблица с пользователями и у каждого из них существует свой чекбокс.

Данные передаются массивом, и в обработчик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-ом массив ?!
Ответить с цитированием