codeigniter ajax, обработка данных ответа сервера - PullRequest
1 голос
/ 26 августа 2011

У меня есть представление editcategory, которое показывает подробную информацию о категории, а также таблицу описаний категорий, отображаемую в нижней части представления.

Таблица описания категории имеет два тега привязки для редактирования и удаления. Я использую ajax для передачи идентификатора описания для редактирования. Должна быть вызвана функция в контроллере, которая вызывает модель описания категории и извлекает запись на основе переданного идентификатора. Контроллеру необходимо передать массив catDescription обратно в функцию успеха ajax.

Уже есть скрытый div, который содержит форму для редактирования описания, но значения установлены следующим образом

 <label for="catlang_name">Name</label>
 <input type="text" name="catlang_name" id="catlang_name" class="text ui-widget-content ui-corner-all"  value="<?php echo set_value('catlang_name',$catDescription->catlang_name); ?>"/>

Моя проблема в том, как я могу получить ответ обратно в Ajax и назначить

Для обычной передачи данных в представление я мог бы сделать следующее изнутри контроллера

$data['catDescription']=$this->CategoryModel->getCategoryDescriptionById($id)
$this->load->view('category/categoryEdit', $data,true);

Это данные, возвращаемые моделью:

Array (
    [0] => Array (
        [catlang_id] => 1
        [catlang_cat_id] => 10
        [catlang_lang_id] => 2
        [catlang_name] => french
        [catlang_description] => test
    )
    [1] => Array (
        [catlang_id] => 2
        [catlang_cat_id] => 10 
        [catlang_lang_id] => 2
        [catlang_name] => english
        [catlang_description] => test
    )
)

Любые предложения будут высоко оценены.

ура

1 Ответ

5 голосов
/ 26 августа 2011

Чтобы передать массив обратно в функцию ajax, вы должны вернуть его как JSON.

В вашем контроллере вместо вызова представления напишите это:

$this->output->set_output(json_encode($array));

Который выведет массив в JSON, который может обработать функция ajax. Я полагаю, вы используете jQuery для обработки ajax, и если вы еще не используете jQuery, сделайте это.

$.ajax(
    url: '<?php echo site_url() ?>category/categoryEdit.php'
    dataType:'json',
    success: function(data) {
        $.each(data, function(index,value){
            //process your data by index, in example
            $("#catlang_name").val(value.catlang_name);
        });
    }
);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...