14.12.2008, 22:58
|
Интересующийся
|
|
Регистрация: 14.12.2008
Сообщений: 13
|
|
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 ...?
Заранее спасибо за все ответы.
|
|
14.12.2008, 23:06
|
|
Матрос
|
|
Регистрация: 04.04.2008
Сообщений: 6,246
|
|
Сообщение от Blondink0
|
Как можно сделать, чтоб данные брались из базы данных MySQL ...?
|
с помощью AJAX получаете с сервера необходимые данные из БД
для этого у вас на сервере должен быть скрипт, который делает обращение к базе, и возвращает результат в удобном для JS виде(например JSON)
|
|
14.12.2008, 23:30
|
Интересующийся
|
|
Регистрация: 14.12.2008
Сообщений: 13
|
|
Огромнейшее спасибо! Это то, что нужно.
Только в связи с этим возникло еще пару вопросов :*
Сильно ли подобный скрипт и обработка\получение данных будут нагружать сервер?
И вот в Мануале был приведен пример
$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"; то меню исчезает и скрипт перестает работать ... подскажите как лучше сделать ...
Заранее всем огромное спасибо за ответы!
Последний раз редактировалось Blondink0, 15.12.2008 в 00:44.
|
|
15.12.2008, 01:43
|
|
Матрос
|
|
Регистрация: 04.04.2008
Сообщений: 6,246
|
|
шаблон ваш синтаксически верен
точнее можно сказать только после полного выяснения что у вас есть в базе, и что вам надо извлечь оттуда
ну, я не буду пошагово все выяснять, сами разберетесь
ваш шаблон надо вставить ьв отедльный файл.
то есть у вас дорлжно быть два файла
один с js
один с ПХП(мускул там же)
и из первого идет обращение на второй
если не так понял, извините
у меня выходной, и я все еще пью
сессия, мать ее
|
|
15.12.2008, 18:03
|
Интересующийся
|
|
Регистрация: 14.12.2008
Сообщений: 13
|
|
Вот в том и вопрос, как сделать обращение из js-файла ... Получается чтоб php работало внутри js-кода, например, использую конструкцию
var js = '<?=$param; ?>';
то расширение файла должно быть php ... или не так? потому что, если я подставляю такую конструкцию в изначальный файл, с расширением js, то подобная конструкция не работает ... А если я меняю расширение js-файла на *.php то скрипт перестает работать ... Даже если все переписывать как
Код:
|
<?
echo "js line 1";
echo "js line 2";
....
echo "js line 99";
.... |
То все равно скрипт не работает ...
Подскажите как можно объеденить файлы и сделать обращение из файла js ...?
Еще раз спасибо)
PS: Удачно сдать.
Последний раз редактировалось Blondink0, 15.12.2008 в 18:08.
|
|
15.12.2008, 18:22
|
|
Матрос
|
|
Регистрация: 04.04.2008
Сообщений: 6,246
|
|
AJAX
прочитайте для начала этот цикл статей, если еще этого не сделали.
а в двух словах, Ajax работет так:
у вас есть HTML-страничка с js-кодом(неважно подключаемым или нет)
там все довольно статично
расширения .htm .html .php для страницы и .js - для подключаемого JS-кода
помимо этого у вас должна быть должна быть страничка с генерируемыми данными. у нее расширение должно быть .php
так, вот скрипт из первой страницы делает запрос на вторую страницу, и получает данные из нее в переменную напрмер.
после чего обрабатывает эту переменную как вам угодно, например измняет HTML_код страницы
иначе не знаю как объяснить
|
|
15.12.2008, 18:34
|
Интересующийся
|
|
Регистрация: 14.12.2008
Сообщений: 13
|
|
Спасибо за ссылку, все прочитаю ... Мне просто был интересен сам пример запроса из стр #1 к стр #2 ... но думаю прочитаю - разберусь. Спасибо еще раз.
|
|
15.12.2008, 18:44
|
|
Матрос
|
|
Регистрация: 04.04.2008
Сообщений: 6,246
|
|
если будут вопросы после прочтения обращайтесь
|
|
15.12.2008, 21:20
|
Интересующийся
|
|
Регистрация: 14.12.2008
Сообщений: 13
|
|
Вопросы к сожалению возникли ...
Попробовала сделать следующее:
файл 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 ...?
Возможно я что-то не так делаю ...
Если не сложно, не могли бы вы поделиться готовым примером ... так как не получается найти примера подобного ...
Последний раз редактировалось Blondink0, 15.12.2008 в 21:23.
|
|
15.12.2008, 21:35
|
|
Матрос
|
|
Регистрация: 04.04.2008
Сообщений: 6,246
|
|
там в одной из статей написано как пользоватся JSON-ом
вот цитата
Цитата:
|
Чтобы десериализовать объект, клиент просто пропускает текст через встроенный парсер, добавив скобкиvar reports = eval( '('+data+')' )
|
таким образом вам надо писать не
Код:
|
Ext.grid.dummyData = [
xmlhttp.responseText
]; |
а
Код:
|
Ext.grid.dummyData =
eval( '('+xmlhttp.responseText+')' ); |
а дальше уже обрабатываете переменную как вам угодно
|
|
|
|