Javascript 在WordPress上使用ajax上传Dropzonejs,我可以';不要让mockfile工作
我已经成功地在WordPress上实现了dropzonejs,并且在我需要将图像预加载到dropzone中的部分之前,我已经将所有的事情都做好了。 我已经创建了自定义模板,用于在前端创建新帖子和编辑帖子。 创建帖子时,一切正常,因为Dropzone只上传新文件,但编辑帖子时,我需要将已经上传到帖子的Dropzone文件拉入 根据所有的说明,我找不到任何适合我的解决方案 这是一个带有dropzone的完整脚本(该脚本直接插入到模板php中,因此javascript中混合了一些php)Javascript 在WordPress上使用ajax上传Dropzonejs,我可以';不要让mockfile工作,javascript,php,ajax,wordpress,dropzone.js,Javascript,Php,Ajax,Wordpress,Dropzone.js,我已经成功地在WordPress上实现了dropzonejs,并且在我需要将图像预加载到dropzone中的部分之前,我已经将所有的事情都做好了。 我已经创建了自定义模板,用于在前端创建新帖子和编辑帖子。 创建帖子时,一切正常,因为Dropzone只上传新文件,但编辑帖子时,我需要将已经上传到帖子的Dropzone文件拉入 根据所有的说明,我找不到任何适合我的解决方案 这是一个带有dropzone的完整脚本(该脚本直接插入到模板php中,因此javascript中混合了一些php) jQuer
jQuery(文档).ready(函数($){
//Dropzone文件上传程序
Dropzone.autoDiscover=false;
var myDropzone=新的Dropzone(#媒体上传器){
url:dropParam.upload,
自动处理队列:true,
并行上传:1,
uploadMultiple:false,
最大文件大小:3,
acceptedFiles:'image/*',
addRemoveLinks:是的,
最大文件数:10,
成功:函数(文件、响应){
file.previewElement.classList.add(“dz成功”);
文件['attachment_id']=response;//推送id以供将来参考
$('#上传媒体')。追加($('');
},
错误:函数(文件、响应){
file.previewElement.classList.add(“dz错误”);
},
//更新以下部分用于从库中删除图像
removedfile:函数(文件){
var attachment_id=file.attachment_id;
jQuery.ajax({
键入:“POST”,
url:dropParam.delete,
数据:{
媒体标识:附件标识
}
});
$('input.media ID[type=hidden]')。每个(函数(){
if($(this).val()==附件id){
$(this.remove();
}
});
var_ref;
return(_ref=file.previewElement)!=null?_ref.parentNode.removeChild(file.previewElement):void 0;
}
});
var mockFile={name:,size:};
emit(“addfile”,mockFile);
emit(“缩略图”,mockFile,”);
emit(“完成”,mockFile);
var existingFileCount=;//已上载的文件数
myDropzone.options.maxFiles=myDropzone.options.maxFiles-existingFileCount;
});
所以这实际上是从服务器获取图像,获取图像的信息,并将它们放入dropzone字段
问题是,当我尝试从dropzone删除图像时,脚本没有响应ajax删除函数,我在firebug控制台中没有看到响应。实际上,dropzone停止对进一步操作(删除或添加新图像)的响应
编辑:
我想我实际上缺少的是
file['attachment\u id']=response;//创建mockfile
时,推送id以供将来参考,因此我使其正常工作,在寻找解决方案2天后,我在这里发布问题后不久才得到它。事情总是这样的
为了让它工作,我需要改变两件事。首先,我向预加载的图像添加了附件\u id
var mockFile = { name: "<?php echo $media_info[$i]['name'] ?>", size: <?php echo $media_info[$i]['size'] ?>, attachment_id: <?php echo $media[$i] ?> };
想解释一下为什么要投反对票吗?
var mockFile = { name: "<?php echo $media_info[$i]['name'] ?>", size: <?php echo $media_info[$i]['size'] ?>, attachment_id: <?php echo $media[$i] ?> };
$('input.media-ids[type=hidden]').each(function() {
if ($(this).val() == attachment_id) {
$(this).remove();
}
});