Переменная JSON отображается как текст - PullRequest
0 голосов
/ 04 декабря 2009

Я не слишком разбираюсь в JSON, поэтому любая помощь будет великолепна ...

Я загружаю страницу с помощью JQuery's .load.

Я устанавливаю переменную varname как переменную, но она публикуется как фактическое имя переменной, а не то, что я ей установил.

Другими словами, он отображается как «varname» вместо «class_id».

var varname = "class_id";

$(this).siblings(".container").load(loadurl,{varname:openedid,"all_ids":allids});

Скриншот Firebug

1 Ответ

3 голосов
/ 04 декабря 2009

Это потому, что (AFAIK) вы не можете поместить выражение в качестве идентификатора в конструктор хеша, потому что они автоматически заключаются в строки.

Другими словами, это действительный JavaScript

$(this).load(url, {name: "Foo", age: 13});

Здесь есть ключи name и age. В JavaScript вам не нужно заключать в кавычки ключи хэша, хотя в строгом JSON цитирование необходимо для ключей. (Но цитирование не повредит. И в некоторых случаях, как предложил Джордан в комментариях, необходимо, например, чтобы вы использовали зарезервированные слова, такие как var, в качестве ключа хеширования)

Чтобы достичь желаемого эффекта, я бы предложил длинное решение (кто-нибудь умный, кто-нибудь еще?)

var varname = "class_id";

var data = {all_ids: allids};
data[varname] = openedid;

$(this).siblings('.container').load(loadurl, data);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...