1

我正在尝试为 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 地址 - 我想动态地执行此操作或以表单管理它。

4

1 回答 1

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')" />
于 2012-11-27T14:46:44.857 回答