Доступ к массиву json по строке?(Преобразование строки в имя переменной) - PullRequest
0 голосов
/ 27 марта 2011

Я пытаюсь опубликовать "lang_id" var.в "get_lang.php" с помощью jquery для получения (json) данных.Но я не могу получить доступ к данным.

Теперь пытаюсь сделать

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

Но это не работает, потому что "r" - это строка IMO.

Такжепробовал

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

спасибо за помощь.

Ответы [ 2 ]

1 голос
/ 27 марта 2011

Попробуйте

var v = data[r];

Точечная запись интерпретирует r как строку, а не как переменную.

0 голосов
/ 27 марта 2011

Я думаю, что, возможно, вам нужно указать jQuery правильный тип контента. Поместите это в ТОП вашего get_lang.php файла

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

И посмотрите, понравится ли jQuery.

...