Передача и чтение массива с объектом и массивом из JavaScript в PHP codeigniter

0

Я пытаюсь передать массив, который выглядит примерно так, используя запрос $.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 для работы с данными?

Может ли кто-нибудь указать мне, что я делаю неправильно?

Спасибо.

Теги:
arrays
codeigniter

1 ответ

0

Думаю, вам нужно разобрать 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>";
   }

}
  • 0
    Нет, я хочу разобрать его на стороне PHP, чтобы выполнить работу с данными на стороне сервера.
  • 0
    Посмотрите сейчас
Показать ещё 6 комментариев

Ещё вопросы

Сообщество Overcoder
Наверх
Меню