2013-07-21 2 views
0

Je dois créer un tableau en php, puis à attribuer à function.I script java besoin de quelque chose comme ceci je besoin de ce tableau en même que il sembletableau double en php et javascript problème

$users = array(
array('username' => 'user1', 'email' => '[email protected]'), 
array('username' => 'user2', 'email' => '[email protected]'), 
array('username' => 'user3', 'email' => '[email protected]'), 
... 
); 

Pour $ users array j'ai essayé ce code

$users = array(); 
while($rw = $objApp->dbrow($res)) 
{ 
$users []=array('username'=>$rw['username'], 
     'email'=>$rw['email'] 
); 
} 

Est-ce que c'est OK?

Si oui, alors je veux passer le même tableau à la fonction javascript ... voici ce que j'ai essayé

objJS::importUsers(<?php echo json_encode($results) ?>); 

est simple, quel est le problème dans mon code en raison de laquelle il ne fonctionne pas

+2

ce qui est 'objJS :: importUsers' – srain

+2

objJS :: importUsers (); cette ligne est fausse en aucune façon. –

+0

En effet, le demandeur ne montre aucun javascript ... – luiges90

Répondre

3

Si vous voulez passer l'objet arbitraire ou un tableau de PHP à Javascript, vous pouvez essayer JSON. (Non testé)

<?php 
    $data = array('whatever'); 
    $json = json_encode($data); 
?> 

<script> 
    var json = '<?=$json?>'; 
    var obj = JSON.parse(json); 

    // do with your obj. 
</script> 

PHP json_encode

Javascript JSON.parse

Notez que cela fonctionne uniquement si votre objet/tableau ne contient pas de clés/valeurs contenant le caractère '.


EDIT: Il semble que vous auriez pu mêler syntaxes.

Javascript aucun opérateur ::.

Je crois que

objJS::importUsers(<?php echo json_encode($results) ?>); 

devrait effectivement être

objJS.importUsers(<?php echo json_encode($results) ?>); 

Cependant, comme vous ne nous dites pas ce que objJs::importUsers est, nous pouvons juste deviner sauvage. Est-ce une fonction Javascript, ou une méthode de classe PHP, ou autre chose?

Si elle est une fonction PHP, je me demande pourquoi vous devez passer à Javascript - il suffit d'appeler cette méthode directement!

EDIT Je lu le commentaire d'un autre poste ici, vous voulez passer un PHP array à Javascript et apparaît comme un Javascript array. Malheureusement, ils ne sont pas les mêmes. clés Javascript array ne peuvent pas vraiment être des chaînes (comme 'email'), ils sont en réalité Javascript objects

+0

Gardez à l'esprit que cela ne permet pas l'interopérabilité entre PHP et JS –

+0

Faut-il que l'étiquette php soit placée entre guillemets? – nbrooks

+0

J'emballe '' entre guillemets. – luiges90

1
<?php 
    $result =['your entire array'] 
    echo json_encode($result); 
?> 

Dans votre javascript !!!

var JS_ARRAY=[]; 
$.ajax({ 
      url: "../xyz/xyz.php", 
      type: 'POST', 
      data: {//your data to be send}, 
      dataType: "json", 
      success: function(data) { 
        console.log(JSON.stringify(data) 
        JS_ARRAY.push(JSON.stringify(data)); 
} 
}); 
//use this JS_ARRAY in you js function. 
+0

Pouvez-vous s'il vous plaît vérifier ma question mise à jour? –

+0

@Methew: vous rendez votre tâche difficile en ajoutant objJS :: importUsers (); ...... Il n'y a pas besoin de faire une telle chose ... vos données atteindront la fonction js dans un format donné par json encode.Vous pouvez ensuite l'analyser comme vous le souhaitez. Avez-vous essayé ce code ?? –

+0

@Methew: acceptez la réponse que vous jugez digne !! –

1
<?php 
    $users = array(
     array('username' => 'user1', 'email' => '[email protected]'), 
     array('username' => 'user2', 'email' => '[email protected]'), 
     array('username' => 'user3', 'email' => '[email protected]'), 
    ); 
    $users_json_str = json_encode($users); 
    ?> 
    <script type="text/javascript"> 
    // here is you java script 
    // the variable users is the same with the $users in your php code 
    var users = <?php echo "$users_json_str";?>; 

    // you can access the first username 
    var first_user_name = users[0]['username']; 
    </script> 
+0

Ça fonctionne toujours ... voici ce que j'ai ... var json = '[{"nom d'utilisateur": "admin", "email": "[email protected]"}, {"nom d'utilisateur": "ahmed .a "," email ":" [email protected] "}] '; SPC.userPrefs = $. ParseJSON (json); –

+0

Un conseil d'erreur? 'SPC.userPrefs' est null? – srain

+0

Il ressemble à du code .. j'ai besoin de voir comme SPC.userPrefs = $ .parseJSON ('mon groupe d'utilisateurs'); –