Я отправляю строку json, используя JQuery.ajax, на страницу php, где я пытаюсь получить массив и перебирать переменные. По какой-то причине я вижу POST в firebug при запуске скрипта, но когда я пытаюсь получить параметры, все, что я получаю, это пустой Array (). Я пытался понять это часами, и я нахожусь в конце. Я перешел с asp.net на .php, так что я все еще немного свеж с моим синтаксисом, но, похоже, это должно быть довольно просто.
Вот мой код для отправки jquery.
$('#form_add').submit(function() {
var serial_data = $(this).serialize();
$(".page_content").fadeOut("slow", function(){
$.get(uri_base +'/'+uri_cont+'/get_db_name/true/'+Math.random(), function(data) {
$.ajax({
type: 'POST',
url: uri_base +'/AJAX/add_record/'+data+'/'+Math.random(),
data: serial_data,
contentType: "application/json",
success: function(data){
$.ajax({
type: 'POST',
url: uri_base +"/"+ uri_cont +"/"+ uri_func,
data: data,
success: function(data){
alert(data)
},
error: function(xhr, ajaxOptions, thrownError){
alert(xhr.status);
alert(thrownError);
}
});
},
error: function(xhr, ajaxOptions, thrownError){
alert(xhr.status);
alert(thrownError);
}
});
});
});
return false;
});
Игнорировать первый .get (), который просто возвращает переменную для завершения следующего URL. Вызов first.ajax () отправляет сериализованные данные формы на мой контроллер AJAX и помещает их в базу данных. При возврате из контроллера возвращается массив объектов, который я преобразовал в json.
if(isset($key)){
$data['add_msg'] = $this->model_ajax->add_record($table,$array);
$exploded_data = json_encode($data['add_msg']);
print_r($exploded_data);
exit;
}
Оттуда следующий .ajax () должен отправить данные моему контроллеру, чтобы получить представление, отображаемое в div .pag_content. Я попытался повторить объект json, a для каждого цикла, чтобы вытащить ключи, и множество других вещей. ничего ... Я получаю либо ошибку JSON Invalid (при попытке ее декодирования), либо просто вывод "Array ()", либо вообще ничего при циклическом просмотре.
Это код контроллера и вывод POST, которые я вижу в firebug ...
echo $_POST;
$array = $_POST;
echo $array;
foreach($_POST as $key){
echo $key;
}
exit;
[{"id":"29","datetime":"2011-03-23 12:10:25","full_name":"Leroy Brown","email_address":"test@testing.com","password":"asdf","id_group":"0","id_sites":"0","active":"0"}]