web-dev-qa-db-fra.com

Obtenir l'identifiant de la réponse ajax de async-upload.php

Son une wordpress + jQuery question. Je ne peux pas le poster sur stackoverflow parce que je crois que cela implique aussi la connaissance de wordpress.

Ce que j'essaie de réaliser: Je joins le programme de téléchargement de média asynchrone wordpress à la page "ajouter un message" afin que l'utilisateur puisse télécharger de nombreuses images, il suffit de les glisser-déposer dans le programme de téléchargement ne pas avoir à les insérer une fois à la fois (voir l'image).

image uploader

Je sauvegarde les identifiants de pièce jointe sur une méta de publication afin que l'utilisateur puisse joindre une image à plusieurs publications.

Question: Lorsque le programme d'envoi envoie la demande de téléchargement au async-upload.php, il renvoie une réponse HTML contenant le formulaire complet pour l'ajout du titre, de la légende et de la description de la pièce jointe. La première de la réponse est la suivante:

<input type='hidden' id='type-of-106' value='image' />

Vous pouvez voir une réponse complète ici .

Ma question est comment puis-je obtenir l'ID de pièce jointe à partir de cette réponse HTML? Je suppose que je dois écouter toute réponse ajax qui provient du async-upload.php, puis parcourir la réponse.

2
Sisir

Je pourrais mais je ne veux vraiment pas poster le travail des autres ici, même si c'est du code open source.

Rilwis Meta Box Class a un champ plupload, qui a un gestionnaire de téléchargement personnalisé. Si vous le voulez bien, jetez un coup d'oeil: https://github.com/rilwis/meta-box

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

La réponse est là. Ce code, ou du moins l'idée, vous donne beaucoup plus de contrôle sur la réponse.

1
ungestaltbar

Pouvez-vous préciser le type de réponse renvoyée? JSON serait définitivement préféré ici au HTML. Sinon, je ne sais pas si vous avez un moyen "fiable" de récupérer l'ID, mais vous pouvez utiliser jQuery pour le trouver. Voici un exemple que vous mettriez dans votre fonction de succès pour la demande 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];
}

Encore une fois, je ne dirais pas que c'est la méthode la plus fiable, car vous supposez que '.media-item-info' sera présent à chaque fois, mais comme je n'ai pas une vue complète de votre code, voici ce que Je vais passer.

0
Thomas