从原型转换为jQuery - javascript / ajax

时间:2009-11-18 23:32:33

标签: javascript jquery ajax prototypejs

我正在寻找一些帮助将其从原型转换为jQuery的帮助。我正在为慈善机构做一些免费工作,并更新他们用来跟踪和分配志愿者的系统。到目前为止,我已经成功转换了其他所有东西,然而,这让我很难过。请原谅拼写错误,代码是逐字逐句给出的。

我已经看过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用于调用php,它使用顾问ID和案例id来分配或删除顾问/志愿者,并返回div的输出(称为adviors_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
});
}

提前感谢您的帮助。

3 个答案:

答案 0 :(得分: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

的详情

答案 1 :(得分: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
       });
}

答案 2 :(得分:0)

我不确定evalScripts部分,但如果你的有效负载没有任何脚本要执行(无论如何将脚本与内容混合都不是一个好主意),你可以这样做:

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