PHP从Controller返回值到Ajax

时间:2014-10-10 16:55:01

标签: php ajax codeigniter

我正在使用MVC,我有一个使用AJAX调用的按钮来删除网站上传的图像。

这是我的模特:

public function remove_document($documentID, $documentName)
    {
        $objData = $this->objDB
            -> setStoredProc('attritionRemoveDocument')
            -> setParam('documentID', $documentID)
            -> setParam('documentName', $documentName)
            -> execStoredProc()
            -> parseXML();

        return $objData->data->response;    

    }

此后的回复是truefalse

这是我的控制器:

public function deleteFile()
    {
        // Get the documentID we are removing
        $documentID = $this->input->post('documentID');
        $documentName = $this->input->post('documentName');

        // Check if the file is even there
        if (file_exists('./uploads/'.$documentName)){

            // Remove file
            unlink('./uploads/'.$documentName);
            $removeFile = $this->submit_model->remove_document($documentID, $documentName);

            return $removeFile;

         }

   }

最后,我的AJAX电话:

$('[name=deleteDocument]').click(function() {

        var documentID = $(this).attr('documentID'),
            documentName = $(this).attr('documentName');

        //Delete the image
        $.ajax({
            type: 'POST',
            url: '../deleteFile',
            dataType: 'xml',
            data: {
                'documentID': documentID,
                'documentName': documentName
            },
            success: function(msg) {

                // On Success, remove the current file section
                console.log(msg);

            }

        });

    });

当我echo控制器中的$removeFile值时,我看到true/false值,但它从未进入AJAX调用的成功函数。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

控制器中的

如果结果为真

echo "OK"

如果结果为假

echo "NO"

在您的视图和成功部分

success: function(msg) {

  if(msg=="OK"){

    alert("DELETED");

   }else{
    alert("NOT deleted");
   }

如果您将控制器与ajax一起使用,您的控制器不应该返回BOOL,您的AJAX调用应该通过success方法控制结果。