从异步上传.php的AJAX响应中获取ID

时间:2012-04-10 作者:Sisir

它是一个wordpress+jQuery 问题无法在stackoverflow上发布,因为我相信它也涉及wordpress知识。

What I am trying to achieve:我将wordpress async media uploader附加到“add post”页的metabox上,这样用户只需将大量图像拖放到uploader中即可上载,而无需每次插入一次(请参见图片)。

image uploader

我正在将附件ID保存在帖子元上,以便用户可以将一个图像附加到多个帖子。

Question: 当上载者将上载请求发送到async-upload.php 它发回一个html响应,其中包含整个表单,用于添加附件的标题、标题和描述。第一个回应是:

<input type=\'hidden\' id=\'type-of-106\' value=\'image\' />
您可以看到完整的响应here.

我的问题是how to I get the attachment id from that html response? 我猜我必须倾听来自async-upload.php 然后查看响应。

2 个回复
SO网友:ungestaltbar

我可以,但我真的不想在这里发布其他人的作品,即使是开源代码。

Rilwis Meta Box类有一个plupload字段,该字段有一个自定义上载处理程序。如果您介意看一下:https://github.com/rilwis/meta-box

响应:https://github.com/rilwis/meta-box/blob/master/inc/fields/plupload-image.php#L31

答案就在那里。这段代码,或者至少是这个想法,让您对响应有了更多的控制。

SO网友:Thomas

能否指定发回的响应类型?在这里,JSON肯定比HTML更受欢迎。如果没有,我不知道您是否有“可靠”的方法来获取ID,但您可以使用jQuery来找到它。下面是一个示例,您可以将其放入Ajax请求的成功函数中:

success: function(html){
    var item_info = $(html).find(\'.media-item-info\').attr(\'id\');
    var info_array = item_info.split(\'-\');
    var attach_id = info_array[2];
}
再说一遍,我不会说这是最可靠的方法,因为你是在假设\'。“媒体项目信息”每次都会出现,但由于我对您的代码没有完整的了解,因此我将按此操作。

结束