Использование Ajax, jQuery и JSON IN CakePHP - PullRequest
0 голосов
/ 04 ноября 2010

Я использую cakephp 1.3 и намереваюсь обновить <div> в моей форме (* .ctp) с информацией, полученной из таблицы mysql.

Хотя я рассмотрел несколько примеров на этом сайте, ни один из них не дает полной картины. Все они, кажется, предполагают некоторые знания с нашей стороны, пропускают часть кода и дают только часть этого.

Я прошу хорошо осведомленных участников предоставить простой полный пример кода контроллера cakephp, кода представления cakephp и сценария jQuery для демонстрации функциональности. Я прошу границы также выделить, как обрабатывать сообщения об ошибках, выдаваемые контроллером, и отображать их так, как обычно показывает cakephp.

Пример может быть таким как:

  • a student_controller обработка таблицы, в которой хранятся roll_no, name и age и class всех студентов.
  • a student_view ctp файл, который первоначально примет roll_no студента, о котором я должен знать. Этот файл ctp также содержит пустой <div> с возможностью отображения имени, возраста и класса - но он изначально скрыт. кнопка отправки, чтобы отправить roll_no.
  • как только будет введено roll_no и нажата submit, jQuery передаст roll_no контроллеру (как кодируется эта функция?)
  • контроллер найдет запись и вернет остальные данные в формате json. (пожалуйста, предоставьте полный синтаксис). Если запись с roll_no недоступна, будет возвращена ошибка (может быть, как строка в кодировке json).

Файл представления должен отображать детали, полученные в пустом div, или отображать сообщение об ошибке, как это обычно делается в cakephp (укажите полный синтаксис скрипта jQuery)

1 Ответ

2 голосов
/ 04 ноября 2010

JQuery часть:

$('form').submit(function(event){
    var roll_no = $('#StudentRollNo').val();
    $.getJSON('/student/details/' + roll_no, function(data){
        $('div#name').text(data.Student.name);
        $('div#age').text(data.Student.age);
        $('div#class').text(data.Student.class);
    });
    return false;
});

Cakephp часть:

function details($roll_no)
{
    $student = $this->Student->findByRollNo($roll_no);
    echo json_encode($student);
    exit;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...