0

我正在使用 ajax 通过 kohana 路由调用控制器。在此控制器内部,我验证表单的所有字段,并将有关未通过验证的字段的数据保存到属性中。

我想做的下一件事是对同一个控制器进行第二次 ajax 调用,检索这个属性,然后用它做一些动作。

但是,在第二次调用中,该属性显然是空的。

有没有办法解决这个问题?没有在第一个 ajax 调用中回显属性?

编辑。

$("#form").validate({
   rules {
      remote: "ajax_file.php"
   }
   messages {
      // I want to get information from ajax call above here
   }
});

jQuery:1.9.0

在第一个块(规则)中,我必须回显 TRUE 或 FALSE - 这就是为什么我不能回显有关失败字段的信息。

在 ajax_file.php 中,我正在收集有关失败字段的数据,我必须在下面进行第二次 ajax 调用(消息)并在第二个 .php 文件中处理这些数据。

4

2 回答 2

0

据我了解,您想验证一个字段,对吗?为什么不使用 kohana 类 'Validate' (Validate::factory($_POST)) 和您希望的任何规则来验证控制器中的字段......然后将结果返回到表单。

PS在您的情况下,您可以在第一次调用完成后执行第二次ajax调用,使用ajax成功选项

于 2013-03-06T00:02:49.833 回答
0

避免提出两个请求...您可以在一个请求下进行...

在你的控制器中

public function action_ajaxmethod(){

  // do some validation code here
  // every error will be stored in
  // **err** variable

  if(!empty(err)) die(json_encode("success" => false, "errors" => err));
  else die(json_encode("success" => true));
}

在你的 js 中

$.ajax({
  url: 'ajaxmethod',
  data: {data: data},
  type: 'POST',
  dataType: 'json',
  success: function(result){
    if(result['success']==true){
      // do some actions
    }
    else{
      // do some actions
    }
  }
});

希望这可以帮助...

于 2013-03-26T03:36:59.673 回答