Как динамически загрузить контроллер и действие (Zend Framework + AJAX)?
Я пытаюсь написать универсальный код для AJAX. Я покажу, что я имею в виду на примере админ-панели интернет-магазинов. Есть некоторые вещи, которые мы можем редактировать, например: категории, продукты, атрибуты. Каждый из этих элементов имеет свои формы с полями ввода текста и флажков ввода и т. Д. Сохранение будет выглядеть в Gmail, когда вы что-то пишете в поле, он автоматически отправляет запрос на сервер. Для каждого модуля (категории, продукты, атрибуты...) у меня есть контроллер и действие в нем, например, для editAction издания, для удаления deleteAction и т. Д. Иногда бывает, что в одном представлении имеется несколько форм, касающихся контроллеров. В основном макете у меня есть код JS:
$.ajax({
url: 'http://localhost/fa.fronted/public/en/controller/action/',
type: 'POST',
data: 'websiteid='+iWebId+'&formid='+iFormId+'&formfieldid='+iFieldId+'&'+dataName+'='+dataValue,
success: function(data) {
if(data=='OK') {
$('#ajaxmessage').text('All changes saved');
}
else{
$('#ajaxmessage').text('Error: ' + data);
}
},
error: function() {
$('#ajaxmessage').text('Error');
}
});
}
Я хотел бы использовать разные URL-адреса для разных контроллеров и действий - я хочу сделать это динамически или управлять им в форме.
1 ответ
function onChangeCallback(controller,action,formId){
var data = getFormData(formId);
// or if you want to save by field $(this).val() will get you the input value
// make the ajax request from the code posted in your question
}
<input type="text" name="username" onchange="return onChangeCallback('<?=$this->ControllerName?>'
,'<?=$this->actionName?>','myForm')" />