我正在使用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文件中处理这些数据。
答案 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
}
}
});
希望这会有所帮助......