2011-03-27 5 views
0

J'essaie d'afficher la variable "lang_id". à "get_lang.php" avec jquery pour obtenir des données (json). Mais je ne peux pas accéder aux données.Accéder à un tableau json par chaîne? (Conversion de la chaîne en nom de variable)

essaie maintenant de faire

var r = $(this).attr('rel'); 
    var v = data.r; 

Mais cela ne fonctionne pas à cause de « r » est une chaîne OMI.

a également essayé

data.window[r] // but... 

"get_lang.php";

$lang_id = (int) ($_POST['lang_id']); 

if($lang_id == 1) 
{ 
    $lang['simple'] = 'aaa'; 
    $lang['array'] = 'bbb'; 
} 

if($lang_id == 2) 
{ 
    $lang['simple'] = 'ccc'; 
    $lang['array'] = 'ddd'; 
} 

print json_encode($lang); 

my.js;

$.post("get_lang.php", { "lang_id": 2}, function(data){ 

    $('.lang').each(function() { 

    var r = $(this).attr('rel'); 
    var v = data.r; 

    $(this).text(v); 

    }); 

},"json"); 

grâce à l'aide.

Répondre

1

Essayez

var v = data[r]; 

La notation de points interprète r comme une chaîne et non pas comme une variable.

0

Je pense que vous devez peut-être indiquer à jQuery le bon type de contenu. Mettre cela en haut de votre fichier get_lang.php

header("Content-Type: application/json"); 

Et si jQuery aime.

Questions connexes