【问题标题】:Returning Uploadifive Ajax 'Error/Success' data from Codeigniter Controller从 Codeigniter 控制器返回 Uploadifive Ajax '错误/成功'数据
【发布时间】:2013-12-10 18:39:37
【问题描述】:

我正在使用Uploadifive 上传插件。它可以正常工作。但是,我很难通过插件将 errorsuccess 消息从我的控制器传递回我的视图。我正在记录控制台和log 错误。但似乎无法将任何控制器错误返回到 Uploadifive 调用以显示在我的视图中。

简而言之,我想从我的控制器(通过$result var)将errorsuccess 消息输出回我的ajax 函数以嵌入到我的视图中。

警报alert(data.result) 输出“未定义”。

JS函数:

$('#file-upload').uploadifive({                 
    ...

    'onUpload': function(file) {
        console.log('upload complete!');
    },
    'onUploadComplete' : function(file, data) {
        console.log('The file ' + file.name + ' uploaded successfully.');

        // returned error/success message here
        alert(data.result);

    },
    'onError': function(errorType) {
        console.log(errorType);
    }
});

CI 控制器方法:

function add_document() {

    // If Ajax request, proceed:
    if(isset($_POST['is_ajax'])) {

        if (!$this->upload->do_upload()) {
            
            // If file upload failed or is invalid, 
            // display error notification
            $result = array('error' => $this->upload->display_errors());
            echo json_encode($result);
        }       
        else {
            
            // If file upload was successful
            $result = 'success!';
            echo $result;

            ...
        }
    }
    // if not, redirect to upload page
    else {
        redirect('upload');
    }

}

【问题讨论】:

  • 你的控制台得到了什么?
  • 只是console.log js 中详述的(这很好)。没有其他错误。警报虽然 (alert(data.result);) 输出“未定义”。
  • Ok console.log 数据和文件在你的上传完成功能,我去喝杯咖啡,然后我们会粉碎这个。
  • 当我了解 UploadifiveUploadify 时,我发现这个脚本不是免费的,而且他们的文档很糟糕(不包含任何关于服务器响应的内容) - 我认为您需要更多的控制台调试。
  • 是的,你也可以想象我的沮丧,哈哈。不确定我可以运行哪些其他调试...如果您需要上传 src,请通过电子邮件发送给我。我向您发送“付费”版本没有问题。 :D

标签: php jquery ajax codeigniter uploadify


【解决方案1】:

我想出了如何让它与我的控制器代码一起工作。 Uploadifive 没有很好的记录,所以它是一个摇摇欲坠的旅程。但无论如何,这就是我如何让它以我想要的方式运行。希望这对其他人有所帮助。

在我的控制器中,我用下面的代码替换了 echo json_encode($result); 行。指定我要使用的数组键(即错误)并将结果输出为html

echo html_entity_decode($result['error']);

在我的 javascript 函数中, 我只需要输出 data... .result 在警报中不需要。请注意,我决定将结果附加到一些 html 而不是警报。

// Display Error/Success Messages
$('.status').html(data);

【讨论】:

    猜你喜欢
    • 2014-12-23
    • 1970-01-01
    • 2012-08-29
    • 2011-08-04
    • 1970-01-01
    • 2020-08-13
    • 1970-01-01
    • 2020-11-12
    • 1970-01-01
    相关资源
    最近更新 更多