Post Jquery fonction de retour avec 2 paramètres

Résolu
bbaasstt Messages postés 191 Date d'inscription   Statut Membre Dernière intervention   -  
bbaasstt Messages postés 191 Date d'inscription   Statut Membre Dernière intervention   -
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 !



A voir également:

1 réponse

codeurh24 Messages postés 760 Date d'inscription   Statut Membre Dernière intervention   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
bbaasstt Messages postés 191 Date d'inscription   Statut Membre Dernière intervention   17
 
Ça marche, merci !!
0