Post Jquery fonction de retour avec 2 paramètres

Résolu/Fermé
Signaler
Messages postés
190
Date d'inscription
mercredi 1 avril 2009
Statut
Membre
Dernière intervention
16 décembre 2016
-
Messages postés
190
Date d'inscription
mercredi 1 avril 2009
Statut
Membre
Dernière intervention
16 décembre 2016
-
Bonjour,

voila j'utilise Jquery pour envoyé des donnés en POST à un fichier php qui va enregistrer dans une variable 'html' des données, mais j'ai besoin d'une seconde variable car mon fichier php va récupérer 2 informations différentes du coup je me suis dit, j'enregistre comme pour la 1er variable ce que je veut dans ma 2nd variable et je fait un echo $variable2 à la fin de mon fichier php.

Logiquement niveau js:
$.post("assets/php/vignette.php",  {
            artistName_search : artistName_search,
            title_search : title_search,
            type_search : type_search,
            label_search : label_search,
            genre_search : genre_search,
            link_search : link_search
 
 
            }, function(html, html2){
              //on retourne le résultat dans le div find
             $('#find').html(html);
             $('#popup-body').html(html2);
              });

le problème c'est que la variable 'html2' au lieu de me retourner ce que j'aurais stocker à l'intérieur dans mon fichier php, me retourne à chaque fois le message 'succes', je comprend pas pourquoi et je sais pas comment contourné ça.

C'est pourquoi j'ai besoin de vous :) merci d'avance pour vos réponses !



1 réponse

Messages postés
760
Date d'inscription
samedi 29 mars 2014
Statut
Membre
Dernière intervention
8 septembre 2018
123
Bonsoir.

Si tu veux récupérer plusieurs valeurs par plusieurs variables de retour il te faut le faire par un retour en json.

Par defaut si tu ne le précise pas c'est un affichage de cette page que tu récupére, donc du html.

ta fonction devrai être comme ça:
$.post( "assets/php/vignette.php", { 
artistName_search : "A",
title_search : "B",
type_search : "C",
label_search : "D",
genre_search : "E",
link_search : "F" },

function( data ) {
$('#find').html(data.variable1);
$('#popup-body').html(data.variable2);
}
, "json");


et dans ton php il ne doit rien avoir affiché sauf a la fin le json encode qui demande un tableau

 $arr = array();
$arr['variable1'] = '<div>ma div 1</div>';
$arr['variable2'] = '<div>ma div 2</div>';
echo json_encode($arr);


Si ton code te retournai success c'est normale:
https://api.jquery.com/jQuery.ajax/
jqXHR.done(function( data, textStatus, jqXHR ) {});
An alternative construct to the success callback option, the .done() method replaces the deprecated jqXHR.success() method. Refer to deferred.done() for implementation details.


https://api.jquery.com/jQuery.post/
https://www.php.net/manual/fr/function.json-encode.php
3
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 41989 internautes nous ont dit merci ce mois-ci

Messages postés
190
Date d'inscription
mercredi 1 avril 2009
Statut
Membre
Dernière intervention
16 décembre 2016
19
Ça marche, merci !!