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");