2009-11-18 4 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 используется для вызова PHP, который использует советник 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 
}); 
} 

Заранее спасибо за любую помощь.

ответ

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 - это сработало! Спасибо за ваше объяснение, очень полезно. –

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 
     }); 
} 
Смежные вопросы