在过去的几个小时里,我一直在尝试获取一些东西......队列完成后从 pluploader 返回的任何东西都无济于事。
这是我的 JS 代码:
var uploader = $('#pluploadDiv').pluploadBootstrap();
uploader.bind("UploadComplete", function(up, files) {
var obj = $.parseJSON(response.response);
alert(obj.result);
});
在 upload.php 脚本的最后一行,我有:
die('{"jsonrpc" : "2.0", "result" : "'.$_REQUEST['unitID'].'", "id" : "id"}');
这对我来说很有意义......但它不起作用,文件上传没有问题,但警报甚至没有触发......没有任何响应。
想法?
使用新代码作为解决方案进行编辑
我正在使用的 JS(感谢 jbl):
var uploader = $('#pluploadDiv').pluploadBootstrap();
uploader.bind('FileUploaded', function(upldr, file, object) {
var myData;
try {
myData = eval(object.response);
} catch(err) {
myData = eval('(' + object.response + ')');
}
$("#vehicle_id_value").val(myData.result);
});
Upload.php 脚本保持不变,最后一行代码:
die('{"jsonrpc" : "2.0", "result" : "'.$_REQUEST['unitID'].'", "id" : "id"}');
所以基本上当我在上传脚本中创建 shell 行以关联图像时,我通过绑定(bind)到 plupload 对象的 FileUploaded 事件将行 ID 传递回原始表单到隐藏的输入字段。
<input type="hidden" name="vehicle_id_value" id="vehicle_id_value" value="" />
像魅力一样工作!
最佳答案
作为上传过程的一部分,可能已经上传了多个文件。在 UploadComplete
阶段,个人回复不再有效。
如果您想显示有关特定文件上传的信息,您应该绑定(bind)到 FileUploaded
事件而不是 UploadComplete
。
像这样的东西:
uploader.bind('FileUploaded', function(upldr, file, object) {
var myData;
try {
myData = eval(object.response);
} catch(err) {
myData = eval('(' + object.response + ')');
}
alert(myData.result);
});
希望对你有帮助
关于php - 如何在上传完成时使用 Plupload 通过 Ajax 返回数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16555550/