1 votes

Comment passer ces chaînes de caractères de php à javascript ?

J'ai 4 chaînes de caractères dans mon application comme ceci que je veux passer à mon fichier js.

$a1='[10,20,13,14]';
$a2='[17,15,14,16]';
$a3='[18,24,16,17]';
$a4='[15,54,18,27]';

echo $a1.",".$a2.",".$a3.",".$a4;

et mon code javascript est

$.ajax({
           type: "POST",
           dataType: "json",
           url: "loaddata.php",
               success: function(data)
            {
           alert(data); //alert 15,54,18,27

          }
     });

je ne peux obtenir que la chaîne $a4, et je ne peux pas obtenir les autres chaînes de caractères

Comment puis-je passer ces 4 chaînes de caractères en php et définir ces 4 variables en javascript ?

Merci ;

5voto

icktoofay Points 60218

Encodez-les en JSON.

Du côté de PHP :

echo json_encode(array("a1" => $a1, "a2" => $a2, "a3" => $a3, "a4" => $a4));

Du côté de JavaScript :

$.ajax({
    type: "POST",
    dataType: "json",
    url: "loaddata.php",
    success: function(data) {
        var a1=data.a1;
        var a2=data.a2;
        var a3=data.a3;
        var a4=data.a4;
        // do something with a1, a2, a3 and a4
    }
});

Et si vous voulez a1 , a2 , a3 y a4 pour être des tableaux de nombres au lieu de chaînes contenant des nombres, il suffit de décoder JSON les chaînes du côté PHP avant de les envoyer :

echo json_encode(array(
    "a1" => json_decode($a1),
    "a2" => json_decode($a2),
    "a3" => json_decode($a3),
    "a4" => json_decode($a4)
));

1voto

tsgrasser Points 509

Utilisez json_encode du côté php et renvoyez les données de cette façon. http://us3.php.net/manual/en/function.json-encode.php

0voto

spinon Points 6362
return "{ A1: '[10,20,13,14]', A2: '[17,15,14,16]', A3: '[18,24,16,17]', A4: '[15,54,18,27]' }";

Mais vous pouvez aussi les passer comme de véritables tableaux en supprimant les guillemets.

0voto

turbod Points 1274

Utilisez la méthode serialize(). Passez les variables dans un champ de saisie et :

$.post("loaddata.php", $("#ajaxform").serialize(), function(data){
  //
});

0voto

jigfox Points 11788
$a1='[10,20,13,14]';
$a2='[17,15,14,16]';
$a3='[18,24,16,17]';
$a4='[15,54,18,27]';

echo $a1.",".$a2.",".$a3.",".$a4;

retournera

[10,20,13,14],[17,15,14,16],[18,24,16,17],[15,54,18,27]

ce n'est pas une chaîne JSON valide.

Vous pouvez retourner un objet qui contient un tableau de tableaux comme ceci :

echo "[".$a1.",".$a2.",".$a3.",".$a4."]";
// => [[10,20,13,14],[17,15,14,16],[18,24,16,17],[15,54,18,27]]

ou vous pouvez retourner un objet avec des clés nommées pour accéder aux différents tableaux.

echo "{a1:".$a1.",a2:".$a2.",a3:".$a3",a4:".$a4."};
// => {a1:[10,20,13,14], a2:[17,15,14,16], a3:[18,24,16,17], a4:[15,54,18,27]}

Ou même beaucoup de beurre : Ne construisez pas la chaîne JSON vous-même et utilisez la fonction PHP json_encode à la place :

$a1=array(10,20,13,14);
$a2=array(17,15,14,16);
$a3=array(18,24,16,17);
$a4=array(15,54,18,27);

echo json_encode(array($a1,$a2,$a3,$a4));
// => [[10,20,13,14],[17,15,14,16],[18,24,16,17],[15,54,18,27]]
// or if you want an associative array
echo json_encode(array("a1" => $a1, "a2" => $a2, "a3"=> $a3, "a4" => $a4));
// => {a1:[10,20,13,14], a2:[17,15,14,16], a3:[18,24,16,17], a4:[15,54,18,27]}

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X