2009-11-18 93 views
2

我正在尋找一些幫助,從原型轉換爲jQuery。我爲一家慈善機構做了一些免費工作,並更新了他們用來跟蹤和分配志願者的系統。到目前爲止,我已經設法將其他所有東西都轉換成了,但是,這讓我很難過。請原諒拼寫錯誤,該代碼是逐字我已經給了。從原型轉換爲jQuery - javascript/ajax

我看了一下http://docs.jquery.com/Ajax/jQuery.ajax但未能把一切融合在一起,覆蓋了所有的不同部分。通常只是結束了一些破碎的混亂。

我有一個網頁,有很多的複選框,這樣的:

<input <?PHP echo $checked; ?> type='checkbox' onclick='toggle_advisor_assignment_mark("<?PHP echo $advisor['id']; ?>", "<?PHP echo x('case_id'); ?>");' /> 

當選中或取消選中(視情況而定),Ajax是用來調用它使用的顧問ID和案例ID的PHP分配或移除顧問/志願者,並返回div的輸出(稱爲admissions_box),以列出當前的顧問/志願者。

的JavaScript代碼:

function toggle_advisor_assignment_mark(id, case_id) 
{ 
new Ajax.Updater('adviors_box', 'index.php', { 
evalScripts: true, 
method: 'POST', 
parameters: 'task=case_change_advisors&ajax_mode=yes&id='+id+'&case_id='+case_id 
}); 
} 

預先感謝任何幫助。

回答

2

可以在一個對象使用key: value對文字作爲負載的功能的第二個參數。而且,如果所有的數據傳遞在作爲第二個參數,請求將被自動發送一個POST要求:

function toggle_advisor_assignment_mark(id, case_id) { 
    $('#advisors_box').load('index.php', { 
     task: 'case_change_advisors', 
     ajax_mode: 'yes', 
     id: id, 
     case_id: case_id 
    }); 
} 

更多關於這在jQuery Docs for the load function

+0

感謝dcneiner - 這個工作!感謝您的解釋,非常有幫助。 – 2009-11-19 00:17:03

0

我不知道有關evalScripts一部分,但如果你的有效載荷沒有被執行的任何腳本(它不是混合使用反正內容腳本是一個好主意),你可以這樣說:

$.post('index.php', 
    {"task" : "case_change_advisors", 
    "ajax_mode" : yes, 
    "id" : id 
    "case_id" : case_id }, 
    function(data) { 
     $("#adviors_box").html(data); 
    }); 
1
function toggle_advisor_assignment_mark(id, case_id) 
{ 
    $('#advisors_box').load('index.php', { 
      task: 'case_change_advisors', 
      ajax_mode: 'yes', 
      id: id, 
      case_id: case_id 
     }); 
}