J'essaie de remplir un tableau en php avec des variables, mais ça ne marche pas du tout. J'utilise JSON et Javascript ..

Quoi qu'il en soit, voici le code PHP que Javascript appelle.

<?php

$username = $_POST['username'];

    $json = '{
    "userdata": [
        {
            "first":"$username"
        },
        {
            "first":"Lester"
        },
        {
            "first":"Mannix"
        }
    ]
}';
echo $json;

?>

Maintenant, le problème est que ce que je reviens à Javascript est "$ username", en texte brut, pas la valeur de la variable.

Merci d'avance.

-1
Andreas Wik 24 nov. 2011 à 23:58

3 réponses

Meilleure réponse

Les variables ne sont pas reconnues entre guillemets simples [doc]

Contrairement aux syntaxes entre guillemets doubles et hérédoc, les variables et séquences d'échappement pour les caractères spéciaux ne seront pas développées lorsqu'elles se produisent dans des chaînes entre guillemets simples.

$json = '{
    "userdata": [
        {
            "first":"'.$username.'"
        },
        {
            "first":"Lester"
        },
        {
            "first":"Mannix"
        }
    ]
}';
0
Martin. 24 nov. 2011 à 20:04

C'est une mauvaise façon de créer un tableau JSON

$json = array(
            "userdata" => array(
                   array("first" => $_POST['username']),
                   array("first" => "Lester"),
                   array("first" => "Mannix"),
             )
         );
echo json_encode($json);
0
Your Common Sense 24 nov. 2011 à 20:10

UTILISEZ json_encode!

$json = array('userdata' => array(
  array('first'=>'foo'),
  array('first'=>'bar'),
  array('first'=>'bof')
));

echo json_encode($json);

Production

{"userdata":[{"first":"foo"},{"first":"bar"},{"first":"bof"}]}
0
maček 24 nov. 2011 à 20:44