Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 14.10.2010, 15:17
Новичок на форуме
Отправить личное сообщение для dl007 Посмотреть профиль Найти все сообщения от dl007
 
Регистрация: 14.10.2010
Сообщений: 3

jqGrid. Заполнение select значениями из запроса.
Не откажите в помощи plz чайнику....а то уже совсем отчаялся! :-)
В JQGrid необходимо сделать заполнение selecta значениями из запроса.

colModel:[
{name:'kod_podr', edittype:'select', formatter:'select', editoptions:{value:GetDicPodr()}, editable:true}],

function GetDicPodr() {    // загружаем значения в Select
    StrkDicPodr="";
    $.getJSON("ic/getd_dic.php", null, function(data) { 
          if (data != null) { 
                 $.each(data, function(i,dt){
                       StrkDicPodr=StrkDicPodr+dt.isn+":"+dt.name+";";
                 });           
          } 
    }); 
    return StrkDicPodr;
}


И все вроде бы прекрасно, но! - проблема в том, что при выходе из функции $.getJSON() в переменной StrkDicPodr восстанавливается значение, заданное ей в строке №5. Следовательно return возвращает пустую строку.
Как передать данные из функции $.getJSON() в функцию GetDicPodr()?
...уже всю голову сломал...
Ответить с цитированием
  #2 (permalink)  
Старый 17.10.2010, 23:52
Интересующийся
Отправить личное сообщение для walabyn Посмотреть профиль Найти все сообщения от walabyn
 
Регистрация: 09.10.2010
Сообщений: 18

а почему не
var StrkDicPodr="";

и почему не
StrkDicPodr+=StrkDicPodr+dt.isn+":"+dt.name+";";
Ответить с цитированием
  #3 (permalink)  
Старый 18.10.2010, 09:21
Новичок на форуме
Отправить личное сообщение для dl007 Посмотреть профиль Найти все сообщения от dl007
 
Регистрация: 14.10.2010
Сообщений: 3

Сообщение от walabyn Посмотреть сообщение
а почему не
var StrkDicPodr="";
Так уже пробовал. Повторюсь, я чайник в JavaScript, и в одной документации вычитал, что определение переменной без "Var" делает ее глобальной...

Сообщение от walabyn Посмотреть сообщение
и почему не
StrkDicPodr+=StrkDicPodr+dt.isn+":"+dt.name+";";
А какая раздница? ...впрочем так тоже не работает.
Здесь, что-то связанное с видимостью переменных. Пока сообразить не могу...
Ответить с цитированием
  #4 (permalink)  
Старый 18.10.2010, 10:34
Интересующийся
Отправить личное сообщение для walabyn Посмотреть профиль Найти все сообщения от walabyn
 
Регистрация: 09.10.2010
Сообщений: 18

в js перед появлением новой переменной всегда надо ставить var, а по случаю
StrkDicPodr+=StrkDicPodr+dt.isn+":"+dt.name+";";

я проглядел что значение приплюсовывается, извините, плюс можно убрать.
вызывается ли в php-файле json_encode? и поддерживается ли он на хостинге? по js вроде все верно тогда
Ответить с цитированием
  #5 (permalink)  
Старый 18.10.2010, 15:31
Новичок на форуме
Отправить личное сообщение для dl007 Посмотреть профиль Найти все сообщения от dl007
 
Регистрация: 14.10.2010
Сообщений: 3

Сообщение от walabyn Посмотреть сообщение
вызывается ли в php-файле json_encode? и поддерживается ли он на хостинге? по js вроде все верно тогда
Да, json_encode вызывается. И вообще StrkDicPodr прекрасно формируется. Просто ее значение теряется при выходе из функции $.getJSON().
Даже не теряется а восстанавливается прежнее значение, заданное в строке №5. Т.е если в строке №5 записать
var StrkDicPodr="777";
то return в строке №13 возвратит: "777". Мелочь какая то, а сообразить не могу!
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
динамическое заполнение SELECT PavelDart Элементы интерфейса 1 10.09.2009 09:16
AJAX - заполнение select - неправильно работает в Mozilla 5.0 С.Тарасов AJAX и COMET 0 16.06.2009 23:58
заполнить select значениями другого select Central Элементы интерфейса 1 30.05.2009 13:41