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

Blondink0 14.12.2008 22:58

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 ...?
Заранее спасибо за все ответы.

Gvozd 14.12.2008 23:06

Цитата:

Сообщение от Blondink0
Как можно сделать, чтоб данные брались из базы данных MySQL ...?

с помощью AJAX получаете с сервера необходимые данные из БД
для этого у вас на сервере должен быть скрипт, который делает обращение к базе, и возвращает результат в удобном для JS виде(например JSON)

Blondink0 14.12.2008 23:30

Огромнейшее спасибо! Это то, что нужно.
Только в связи с этим возникло еще пару вопросов :*
Сильно ли подобный скрипт и обработка\получение данных будут нагружать сервер?
И вот в Мануале был приведен пример
$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"; то меню исчезает и скрипт перестает работать ... подскажите как лучше сделать ...
Заранее всем огромное спасибо за ответы!

Gvozd 15.12.2008 01:43

шаблон ваш синтаксически верен
точнее можно сказать только после полного выяснения что у вас есть в базе, и что вам надо извлечь оттуда
ну, я не буду пошагово все выяснять, сами разберетесь
ваш шаблон надо вставить ьв отедльный файл.
то есть у вас дорлжно быть два файла
один с js
один с ПХП(мускул там же)
и из первого идет обращение на второй
если не так понял, извините
у меня выходной, и я все еще пью
сессия, мать ее

Blondink0 15.12.2008 18:03

Вот в том и вопрос, как сделать обращение из js-файла ... Получается чтоб php работало внутри js-кода, например, использую конструкцию
var js = '<?=$param; ?>';
то расширение файла должно быть php ... или не так? потому что, если я подставляю такую конструкцию в изначальный файл, с расширением js, то подобная конструкция не работает ... А если я меняю расширение js-файла на *.php то скрипт перестает работать ... Даже если все переписывать как
Код:

<?
echo "js line 1";
echo "js line 2";
....
echo "js line 99";
....

То все равно скрипт не работает ...
Подскажите как можно объеденить файлы и сделать обращение из файла js ...?
Еще раз спасибо)
PS: Удачно сдать.

Gvozd 15.12.2008 18:22

AJAX
прочитайте для начала этот цикл статей, если еще этого не сделали.
а в двух словах, Ajax работет так:
у вас есть HTML-страничка с js-кодом(неважно подключаемым или нет)
там все довольно статично
расширения .htm .html .php для страницы и .js - для подключаемого JS-кода
помимо этого у вас должна быть должна быть страничка с генерируемыми данными. у нее расширение должно быть .php
так, вот скрипт из первой страницы делает запрос на вторую страницу, и получает данные из нее в переменную напрмер.
после чего обрабатывает эту переменную как вам угодно, например измняет HTML_код страницы
иначе не знаю как объяснить

Blondink0 15.12.2008 18:34

Спасибо за ссылку, все прочитаю ... Мне просто был интересен сам пример запроса из стр #1 к стр #2 ... но думаю прочитаю - разберусь. Спасибо еще раз.

Gvozd 15.12.2008 18:44

если будут вопросы после прочтения обращайтесь

Blondink0 15.12.2008 21:20

Вопросы к сожалению возникли ...
Попробовала сделать следующее:
файл test.php
Внутри него примерно следующий код:
Код:

<?
...
$a = ...;
...
$res = json_encode("$a");
echo $res;
?>

Потом файл index.php со следующим содержанием
Код:

<html>
<head>
...
<script type="text/javasctipt" src="sample.js"></script>
...
</head>
...
</html>

И файл sample.js, со следующим кодом:
Код:

...
//код extJs и тп
...
var xmlhttp = getXmlHttp()
xmlhttp.open('GET', 'test.php', false);
xmlhttp.send(null);
...
Ext.grid.dummyData = [
xmlhttp.responseText
];
...

Но все-равно не работает ...
Возможно ли как-то содержание файла с расширением js перенести в файл с расширением php ...?
Возможно я что-то не так делаю ...
Если не сложно, не могли бы вы поделиться готовым примером ... так как не получается найти примера подобного ...

Gvozd 15.12.2008 21:35

там в одной из статей написано как пользоватся JSON-ом
вот цитата
Цитата:

Чтобы десериализовать объект, клиент просто пропускает текст через встроенный парсер, добавив скобкиvar reports = eval( '('+data+')' )
таким образом вам надо писать не
Код:

Ext.grid.dummyData = [
xmlhttp.responseText
];

а
Код:

Ext.grid.dummyData =
eval( '('+xmlhttp.responseText+')' );

а дальше уже обрабатываете переменную как вам угодно


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