我正在尝试为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地址 - 我想动态地执行此操作或在表单中进行管理。
答案 0 :(得分: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')" />