Я пытаюсь передать массив, который выглядит примерно так, используя запрос $.ajax().
[
[
{
name: "Bob",
age: "22"
},
{
name: "Sam",
age: "28"
},
{
name: "Tom",
age: "26"
},
],
[
batch: "101",
status: "live"
]
]
Как вы можете видеть, есть два массива с одним объектом.
Мой вопрос в том, как передать это кодинигрегиру и прочитать информацию.
В настоящее время я передаю его в Codeigniter, делая что-то вроде этого.
var submit = $.ajax({
url:$('#hiddenurl').val() + 'index.php?/home/checkout/',
type: 'POST',
data: {checkoutInformation: checkout_data_arr},
success: function(response, status, xhr) {
//do code here
}
});
и моя функция контроллера Codeigniter выглядит примерно так.
function checkout(){
//send back Item details in JSON.
$checkoutInformation = $this -> input -> post('checkoutInformation');
print_r($checkoutInformation);
}
В настоящее время это ответ от этой функции
Array
(
[0] => Array
(
[0] => Array
(
[name] => Bob
[age] => 22
)
[1] => Array
(
[name] => Sam
[age] => 28
)
[2] => Array
(
[name] => Tom
[age] => 26
)
)
)
Как вы можете видеть, ничего общего со вторым массивом, который там есть. Как обрабатывать данные с помощью php для работы с данными?
Может ли кто-нибудь указать мне, что я делаю неправильно?
Спасибо.
Думаю, вам нужно разобрать json на стороне клиента?
var submit = $.ajax({
url:$('#hiddenurl').val() + 'index.php?/home/checkout/',
type: 'POST',
data: {checkoutInformation: checkout_data_arr},
success: function(response, status, xhr) {
var obj = jQuery.parseJSON( response );
//echo obj[0][0].name;
// or walking through loop
$.each(obj[0], function( index, value ) {
alert( index + ": " + value );
});
}
});
Анализ на стороне сервера:
function checkout(){
//send back Item details in JSON.
$checkoutInformation = $this -> input -> post('checkoutInformation');
foreach($checkoutInformation[0] as $k => $v) {
echo $k . ":" . $v['name'] . '-' . $v['age'] . "<br>";
}
}