У меня есть список продуктов, отображаемых в таблице, каждый из которых имеет флажок, позволяющий пользователю выбрать этот продукт. Я хочу иметь возможность выполнять другие операции над выбранными продуктами, как только пользователь нажимает кнопку.Codeigniter как вызвать функцию контроллера через JQuery
До сих пор у меня есть код JQuery, прикрепленный к кнопке, которая строит массив идентификаторов выбранных продуктов, но теперь я застрял. Я хотел бы иметь возможность вызвать контроллер на этом этапе и передать массив; он затем может выполнять операции над выбранными элементами и отображать результаты в другом представлении, например.
Мой JQuery код выглядит следующим образом: (это очень многословным, поскольку он содержит много отладочных сообщений)
/*
Respond to the clicking of the 'With Selected->[Update Retail Outlets]' button
*/
$('#btn_uro').click(function() {
alert('Update Retail Outlets');
var w = 0;
var str_status;
var sel_array = [];
$('.chk_sel_pdt').each(function() {
var $this = $(this);
if ($this.is(':checked')) {
str_status = "Checked";
sel_array.push($this.val());
} else {
str_status = "Unchecked";
}
console.log (w + ": " + $(this).val() + " - " + str_status);
w++;
});
console.log(sel_array);
// now try to send the array to a CI controller so that it can process the
// update request.
Может кто-нибудь сказать мне, как я могу вызвать функцию контроллера здесь и передать sel_array [] к нему , Я ценю, что это может быть неправильный подход полностью, поэтому, пожалуйста, не стесняйтесь предлагать альтернативу.
Заранее спасибо. Г.
Спасибо, Узайр, это очень элегантное решение. Однако, когда я вызываю функцию контроллера, она не работает. То есть, функция контроллера загружает представление, но представление не отображается. Если я проверяю структуру GET с помощью Firebug, все представления находятся прямо на вкладке HTML, но CI не загружает его в мой браузер. Есть идеи? Благодарю. – unplugngo
Привет, unplugngo. Вам нужно вернуть этот html в переменную типа $ html = $ this-> load-> view ($ view_name, $ data, true); он сохранит это представление в переменной и вернет эту переменную (желательно в json) в ответ ajax и проанализирует json в вашем js-успехе и покажет, что html-данные, где бы вы ни захотели, используя метод jQuery $ (element) .html(). Cheers – Uzair