我有以下JQuery代码:
$('#dropdown').bind('change', function() {
var formData = $('#newform').serialize()
$.ajax({
type: 'POST',
url: baseUrl+"crm/orders/ajaxEdit",
data: formData,
success: function(){
console.log("ok");
},
error: function() {
console.log("not ok");
}
});
});
ajaxEdit
操作非常简单:
function ajaxEdit() {
$this->layout = 'ajax';
$this->autoRender = false;
$this->Order->save($this->data['Order']);
}
它的工作正常,因为表单中的数据被发布到CakePHP控制器中的正确操作。
但是,无论CakePHP中的插入查询是否成功,“ok”消息都会回显到控制台,除非HTTP请求失败或其他内容。
如果在Cake操作中出现验证错误或其他插入错误,我怎么能将错误发送回JQuery,JQuery会将其识别为错误并向控制台回显“不正常”? / p>
答案 0 :(得分:0)
试试这个:jquery代码
$('#dropdown').bind('change', function() {
var formData = $('#newform').serialize()
$.ajax({
type: 'POST',
url: baseUrl+"crm/orders/ajaxEdit",
data: formData,
success: function(output){
var x = jQuery.parseJSON( output );
if(x.success == 1){
console.log("ok");
}else{
console.log("not ok");
}
},
});
});
ajax编辑动作
function ajaxEdit() {
$this->layout = 'ajax';
$this->autoRender = false;
if($this->Order->save($this->data['Order'])){
$res = array('success'=>1);
$str=json_encode($res);
echo $str;
}
else{
$res = array('success'=>0);
$str=json_encode($res);
echo $str;
}
}