2010-11-04 82 views
0

我正在使用cakephp 1.3,并打算用我的表单(* .ctp)更新<div>,其中的信息是从mysql表中获取的信息。在CakePHP中使用Ajax,jQuery和JSON

虽然我已经通过本网站中的几个例子,但他们都没有提供完整的图片。他们似乎都承担了我们的一些知识,并跳过部分代码,只给出部分代码。

我要求知识渊博的寄宿生提供一个简单的完整示例cakephp控制器代码,cakephp视图代码和用于演示功能的jQuery脚本。 我要求寄宿生也强调如何处理由控制器抛出的错误消息,并以cakephp通常显示的方式显示它们。

的例子可能是为下:

  • 一个student_controller处理表中存储roll_nonameage和所有学生的class
  • a student_view ctp文件,最初会接受我需要了解的学生的roll_no。这个ctp文件还包含一个空的<div>,提供名称,年龄和班级的显示 - 但它最初是隐藏的。 提交按钮提交roll_no。
  • 只要在进入roll_no并提交按下,jQuery将在roll_no传递给控制器​​(该功能是如何编码的?)
  • 控制器会发现,记录并返回其他细节作为JSON编码。 (请提供完整的语法)。如果带有roll_no的记录不可用,则会返回错误(可能是,作为json编码的字符串)。

视图文件应显示在空div接收到的详细信息或显示错误信息为通常在cakephp中进行(请提供jQuery脚本的完整语法)

+2

您的大写锁定键似乎被打破 – 2010-11-04 08:47:38

+0

@badp您刚才正确手动文本或某种自动化?真棒! – 2010-11-04 08:57:56

+2

@moontear我用google搜索“句子转换器”:) – badp 2010-11-04 08:59:08

回答

2

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; 
}