Преобразование из прототипа в jQuery - javascript / ajax - PullRequest
2 голосов
/ 19 ноября 2009

Мне нужна помощь в преобразовании этого прототипа в 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, который использует идентификатор советника и идентификатор случая для назначения или удаления советника / добровольца, и возвращает результат для 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 ]

2 голосов
/ 19 ноября 2009

Вы можете использовать пары 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 для функции загрузки

1 голос
/ 19 ноября 2009
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
       });
}
0 голосов
/ 19 ноября 2009

Я не уверен насчет части evalScripts, но если в вашей полезной нагрузке нет сценариев, которые нужно выполнить (в любом случае не рекомендуется смешивать сценарии с контентом), вы можете сделать это следующим образом:

$.post('index.php', 
    {"task" : "case_change_advisors",
     "ajax_mode" : yes, 
     "id" : id
     "case_id" : case_id },
    function(data) {
        $("#adviors_box").html(data);
    });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...