GridWindow, проблемы с массивом ...
Здравствуйте!
У меня возникла следующая проблема, имеется gridwindow, берет данные для вывода в колонки из массива Ext.grid.dummyData, пример кода: Ext.grid.dummyData = [ [1, 2, 3 ,4], [a, s, d, f], [q, w, e, r] ... ]; Как можно сделать, чтоб данные брались из базы данных MySQL ...? Например, у нас есть следующие колонки в gridwindow: страна, город, улица, кол-во жителей и в mysql есть следующие данные: country, sity, street, sum ... И пополняется база данных за счет ввода данных пользователем, то есть кол-во записей всегда меняется, и не известно ... Реально ли вообще сделать, чтоб данные из mysql отображались в колонках gridwindow ...? Заранее спасибо за все ответы. |
Цитата:
для этого у вас на сервере должен быть скрипт, который делает обращение к базе, и возвращает результат в удобном для JS виде(например JSON) |
Огромнейшее спасибо! Это то, что нужно.
Только в связи с этим возникло еще пару вопросов :* Сильно ли подобный скрипт и обработка\получение данных будут нагружать сервер? И вот в Мануале был приведен пример $test = array("111","222","333"); echo json_encode($test); Я с MySql на "вы" поэтому не знаю как лучше сделать ... То есть у меня должен получиться примерно следующий шаблон? $a = SELECT country, COUNT(*) AS total FROM statistics .... while ($b = $db->get_array($result)) .... ... json_encode(<?=$b["total"]?>) Или как-то по-другому? Так же возникла проблема с передачей данных js скрипту ... Использую шаблон desktop из пакета extjs 2.2 , gridWindow находится внутри файла sample.js ... но чтоб передавать значения переменных, нужно сделать расширение файла *.php , но как тогда его вставлять в основной файл.html ...? если include "./sample.php"; то меню исчезает и скрипт перестает работать ... подскажите как лучше сделать ... Заранее всем огромное спасибо за ответы! |
шаблон ваш синтаксически верен
точнее можно сказать только после полного выяснения что у вас есть в базе, и что вам надо извлечь оттуда ну, я не буду пошагово все выяснять, сами разберетесь ваш шаблон надо вставить ьв отедльный файл. то есть у вас дорлжно быть два файла один с js один с ПХП(мускул там же) и из первого идет обращение на второй если не так понял, извините у меня выходной, и я все еще пью сессия, мать ее |
Вот в том и вопрос, как сделать обращение из js-файла ... Получается чтоб php работало внутри js-кода, например, использую конструкцию
var js = '<?=$param; ?>'; то расширение файла должно быть php ... или не так? потому что, если я подставляю такую конструкцию в изначальный файл, с расширением js, то подобная конструкция не работает ... А если я меняю расширение js-файла на *.php то скрипт перестает работать ... Даже если все переписывать как Код:
<? Подскажите как можно объеденить файлы и сделать обращение из файла js ...? Еще раз спасибо) PS: Удачно сдать. |
AJAX
прочитайте для начала этот цикл статей, если еще этого не сделали. а в двух словах, Ajax работет так: у вас есть HTML-страничка с js-кодом(неважно подключаемым или нет) там все довольно статично расширения .htm .html .php для страницы и .js - для подключаемого JS-кода помимо этого у вас должна быть должна быть страничка с генерируемыми данными. у нее расширение должно быть .php так, вот скрипт из первой страницы делает запрос на вторую страницу, и получает данные из нее в переменную напрмер. после чего обрабатывает эту переменную как вам угодно, например измняет HTML_код страницы иначе не знаю как объяснить |
Спасибо за ссылку, все прочитаю ... Мне просто был интересен сам пример запроса из стр #1 к стр #2 ... но думаю прочитаю - разберусь. Спасибо еще раз.
|
если будут вопросы после прочтения обращайтесь
|
Вопросы к сожалению возникли ...
Попробовала сделать следующее: файл test.php Внутри него примерно следующий код: Код:
<? Код:
<html> Код:
... Возможно ли как-то содержание файла с расширением js перенести в файл с расширением php ...? Возможно я что-то не так делаю ... Если не сложно, не могли бы вы поделиться готовым примером ... так как не получается найти примера подобного ... |
там в одной из статей написано как пользоватся JSON-ом
вот цитата Цитата:
Код:
Ext.grid.dummyData = [ Код:
Ext.grid.dummyData = |
О, огромное спасибо, теперь почти все понятно, остается только вопрос, здесь пример с испльзованием 1-го cтороннего файла php, а возможно ли сделать подобное без использования большого кол-ва php-файлов, дело в том, что у меня в файле sample.js много grid-окон и соответственно много массивов, немного неудобно если для каждого массива используется отдельный файл php ...
|
можно
например так из 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 должна вычислятся в зависимости от того какой параметр вызван это один из вариантов решения |
Точно, как я сразу не сообразила) get-запросы все решат. Спасибо еще раз, теперь должно все получаться. Надеюсь у меня больше не возникнит глупых вопросов. Спасибо!
|
К сожалению все же возникла проблема ... при модификации 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-код, весь шаблон перестает работать, как описано выше ... Подскажите, как тут быть ... |
собственно я начинаю терятся и недопонимать вас
Цитата:
не знаю что хотели, а будет следующее: 1)ошибка парсинга(следите за вложенностью кавычек, либо экранируйте их) 2)если исправить проблему с кавычками, то у вас в свойство title запишется текстовая перменнаяс таким содержимым Код:
xmlhttp.open('GET', 'test.php', false); если же вы хотите получить туда ответ с сервера, то как ранее обсуждалось использщуем что-то по типу Код:
title:eval( '('+xmlhttp.responseText+')' ); то есть если у вас менюшка не общается интерактивно с сервером, а один раз прописывается все слова в ней, и не меняется, то запрос должен быть выполнен до ее прорисовки тут я вам уже помочь не смогу, ибо с ExtJS не работал, поэтому код разобрать будет проблемно |
Спасибо, буду пробовать, просто непонятно было, почему при каких-либо изменениях в скрипте, он переставал работать ... Сейчас попробую сделать так, как написано выше, об результате напишу=)
Спасибо! //Все-таки перестает работать, а можно ли как-то выводить ошибки кода? Как например с php error_reporting(); , только с js, с php понятно, можно указать в конфигурации сервера или же в ручную, но с js даже не представляю как ... |
Часовой пояс GMT +3, время: 10:49. |