Comment passer des parameters dans jQuery

Je suis censé soumettre 2 valeurs appelées str et name à une autre page.Mais une seule valeur est renvoyée à la page suivante. Lorsque print_r($_POST) nom et à la page suivante si je dis print_r($_POST) , même la première valeur n’est pas imprimée. J’ai écrit une fonction comme suit, ce qui fonctionne car il n’y a qu’un seul paramètre.

 function sendValue(str) { $.post( "newsletter/subscribe.php", //Ajax file { sendValue: str }, function(data){ $('#display').html(data.returnValue); }, "json" ); } 

Mais si je passe 2 valeurs dans cette fonction et dans $.post , je sendValue:str,name alors je ne reçois même pas une valeur.

Vous pouvez poster 2 valeurs comme ceci:

 function sendValue(str, name) { $.post("newsletter/subscribe.php", { 'ssortingng': str, 'name' : name }, function(data){ $('#display').html(data.returnValue); }, "json"); } 

Le format de l’argument data de $.post() est le suivant:

 { 'varName' : variable, 'var2Name', variable2, 'var3Name' : variable3 } 

Vous ne pouvez pas affecter de valeurs séparées par des virgules à la même clé dans un object, car cela rompt la syntaxe Javascript. Vous aurez besoin de deux paires , par exemple:

 function sendValue(str) { $.post( "newsletter/subscribe.php", //Ajax file { sendValue: str, anotherValue: anotherStr }, function(data){ $('#display').html(data.returnValue); }, "json" ); } 

Ensuite, dans votre script PHP, vous pouvez accéder à anotherValue sous la forme $_POST['anotherValue'] , qui apparaîtra correctement dans print_r($_POST) .

Si vous préférez, vous pouvez envoyer une seule chaîne avec des paires clé-valeur comme suit:

 $.post( "newsletter/subscribe.php", "theValue=something&anotherValue=somethingelse", function(data){ $('#display').html(data.returnValue); },"json");