Javascript-форум (https://javascript.ru/forum/)
-   ExtJS (https://javascript.ru/forum/extjs/)
-   -   GridWindow, проблемы с массивом ... (https://javascript.ru/forum/extjs/2369-gridwindow-problemy-s-massivom.html)

Blondink0 15.12.2008 23:35

О, огромное спасибо, теперь почти все понятно, остается только вопрос, здесь пример с испльзованием 1-го cтороннего файла php, а возможно ли сделать подобное без использования большого кол-ва php-файлов, дело в том, что у меня в файле sample.js много grid-окон и соответственно много массивов, немного неудобно если для каждого массива используется отдельный файл php ...

Gvozd 15.12.2008 23:45

можно
например так
из grid-окна вызываете
xmlhttp.open('GET', 'test.php?grid=name1', false);


а в файле test.php пишите такое
if($_GET['grid']=='name1')
{
$a = ...;
echo json_encode($a);
}
elseif($_GET['grid']=='name2')
{
$a = ...;
echo json_encode($a);
}
elseif($_GET['grid']=='name3')
{
$a = ...;
echo json_encode($a);
}
elseif($_GET['grid']=='name4')
{
$a = ...;
echo json_encode($a);
}

соответственно переменная $a должна вычислятся в зависимости от того какой параметр вызван

это один из вариантов решения

Blondink0 15.12.2008 23:50

Точно, как я сразу не сообразила) get-запросы все решат. Спасибо еще раз, теперь должно все получаться. Надеюсь у меня больше не возникнит глупых вопросов. Спасибо!

Blondink0 16.12.2008 00:18

К сожалению все же возникла проблема ... при модификации sample.js скрипт перестает работать ... то есть исчезает меню, иконки перестают быть активными и тп ... То есть, допустим я дополняю следующий код:
getStartConfig : function(){
        return {
            title: 'xmlhttp.open('GET', 'test.php', false);', //здесь дополнение ...
            iconCls: 'user',
            toolItems: [{
                text:'Сброс',
                iconCls:'sbr',
                handler:function(){ window.location = "?do=cl"; },
                scope:this
},{
                text:'Выход',
                iconCls:'logout',
                handler:function(){ window.location = "?do=exit"; },
                scope:this
            }]
        };
    }

Если же построить отдельную конструкцию, и дать javascript-переменной значение
xmlhttp.open('GET', 'test.php', false);
А потом эту переменную подставить в поле 'text', все равно скрипт не работает ... в чем может быть проблема ...?
PS: Здесь пример startMenu ...
PS2: По сути, со всем разобралась, то есть теперь проблемы с получением и обработкой данных не осталось, за что, отдельное спасибо;)
Осталась только одна проблема, при каких-либо изменениях файла sample.js, например, если вписать в него какую-либо конструкцию, функцию или php-код, весь шаблон перестает работать, как описано выше ... Подскажите, как тут быть ...

Gvozd 16.12.2008 18:47

собственно я начинаю терятся и недопонимать вас
Цитата:

Сообщение от Blondink0
title: 'xmlhttp.open('GET', 'test.php', false);', //здесь дополнение ...

этой строчкой вы что хотели сделать?
не знаю что хотели, а будет следующее:
1)ошибка парсинга(следите за вложенностью кавычек, либо экранируйте их)
2)если исправить проблему с кавычками, то у вас в свойство title запишется текстовая перменнаяс таким содержимым
Код:

xmlhttp.open('GET', 'test.php', false);
не думаю чтоэто то, что вам нужно.
если же вы хотите получить туда ответ с сервера, то как ранее обсуждалось использщуем что-то по типу
Код:

title:eval( '('+xmlhttp.responseText+')' );
при этом не забываем что запрос должен был быть выполнен где-то раньше этого момента
то есть если у вас менюшка не общается интерактивно с сервером, а один раз прописывается все слова в ней, и не меняется, то запрос должен быть выполнен до ее прорисовки
тут я вам уже помочь не смогу, ибо с ExtJS не работал, поэтому код разобрать будет проблемно

Blondink0 16.12.2008 20:08

Спасибо, буду пробовать, просто непонятно было, почему при каких-либо изменениях в скрипте, он переставал работать ... Сейчас попробую сделать так, как написано выше, об результате напишу=)
Спасибо!
//Все-таки перестает работать, а можно ли как-то выводить ошибки кода? Как например с php error_reporting(); , только с js, с php понятно, можно указать в конфигурации сервера или же в ручную, но с js даже не представляю как ...


Часовой пояс GMT +3, время: 04:15.