从CakePHP向JQuery发送可识别的错误

时间:2012-07-13 09:29:14

标签: jquery cakephp

我有以下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>

1 个答案:

答案 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; 
    }
}