KO 3.2 - 需要有关ajax设计的建议

时间:2013-03-01 12:36:34

标签: php jquery ajax validation kohana

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

我要做的下一件事是对同一个控制器进行第二次ajax调用,检索此属性,并对此进行一些操作。

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

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

EDIT。

$("#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文件中处理这些数据。

2 个答案:

答案 0 :(得分:0)

据我了解,您想要验证字段,对吗?为什么不通过使用kohana类'Validate'(Validate :: factory($ _ POST))以及您希望的任何规则验证您的字段中的字段...然后将结果返回到表单。

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

答案 1 :(得分: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
    }
  }
});

希望这会有所帮助......