2010-11-04 52 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; 
}