powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Как подружить extJS и MySQL?
19 сообщений из 19, страница 1 из 1
Как подружить extJS и MySQL?
    #35724651
_Anastasia_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте!
У меня возникла проблема, нужно объеденить extJS и mysql, задача стоит в следующем:
Имеется Grid-Window, который получает данные, для вывода в окно из массива. Находится он в файле file.js , имеется основной файл index.php , в котором прорисовывается окно, за счет того, что изначально вствляется тег <script src=file.js></script>
Часть кода из file.js

createWindow : function(){
var desktop = this.app.getDesktop();
var win = desktop.getWindow('animal');
if(!win){
win = desktop.createWindow({
id: 'animal',
title:'Животные',
width:740,
height:480,
iconCls: 'animals',
shim:false,
animCollapse:false,
constrainHeader:true,

layout: 'fit',
items:
new Ext.grid.GridPanel({
border:false,
ds: new Ext.data.Store({
reader: new Ext.data.ArrayReader({}, [
{name: 'q1'},
{name: 'q2'},
{name: 'q3'},
{name: 'q4'}
]),
data: Ext.grid.animal
}),
cm: new Ext.grid.ColumnModel([
new Ext.grid.RowNumberer(),
{header: "Cобаки", width: 120, sortable: true, dataIndex: 'q1'},
{header: "Кошки", width: 70, sortable: true, dataIndex: 'q2'},
{header: "Хорьки", width: 70, sortable: true, dataIndex: 'lq3'},
{header: "Хомяки", width: 70, sortable: true, dataIndex: 'q4'}
]),

viewConfig: {
forceFit:true
},
})
});
}
win.show();
}
});

/*Здесь другие окна и т.п.*/


Ext.grid.animal = [
['1','2','3','4'], // Данные, которые будут выводиться в окно.
['5','6','7','8'] // Данные, которые будут выводиться в то же окно, но строкой ниже.
/*И так далее, весь массив*/
];

Как можно сделать так, чтоб данные для массива брались из mysql ...
Был вариант использовать json, cторонний скрипт, который будет получать статистику, и объеденить все это в одном js-файле с Grid-Окном, но безуспешно, при добавлении include\require\etc js-скрипт перестает работать :(
Еще рассматривался вариант, с добавлением примерно следующего кода:
$sql = SELECT FROM * ... ;
$result = ...;
json_encode($result);
echo $result;
Но, так как Grid-Окон очень много, приходится каждый раз заново подключаться, заново указывать данные для авторизации и пр. Если добавить где-то изначально авторизационные данные, то потом их значения не передаются, по-этому прийдется каждый раз подключаться.
Тем более это не единственный скрипт, который будет использовать MySQL, и тогда вообще непонятно что получается и множество раз нужно прописывать логин:пароль:хост:БД, а если вписать все значения в отдельный файл, то не понятно, как его добавить, так как уже было описано выше, что include\etc влияет на работу скрипта.
Какие есть способы решения? Возможно, кто-то уже пробовал подобное и нашел, как лучше сделать?
Заранее спасибо за ответы.
...
Рейтинг: 0 / 0
Как подружить extJS и MySQL?
    #35724785
IDVsbruck
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну, это тема, в принципе, не для этого раздела, а все же для ПэХаПэ ...

Что такое ORM, ты знаешь? (Object-relational mapping) Простыми словами - это когда не нужно лезть в базу ручными сиквел-запросами и при этом получаешь не набор рекордов, а коллекцию объектов. Конечно, куценько объяснил, но суть та. Правда, это работает только в ООП-языках. По моим очень скудным сведениям вроде 5-ый ПэХаПэ уже ООП, поэтому можно попробовать. Просто ОРМ не только делает представление таблиц баз данных, но еще и контролирует пул соденений ...

Так что если нет возможности или желания позьзоваться ОРМами, то копай в сторону создания пула соединений к БД - это когда один раз открываешь соединение с базой, пользуешься сколько хочешь, а потом закрываешь, а не так как сейчас - открыл-взял-закрыл и по новой.

П.С. Кстати, в Гугле дало 842000 линков к строке "orm php".
...
Рейтинг: 0 / 0
Как подружить extJS и MySQL?
    #35725423
га га га
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ExtJs подключается к проекту за весьма небыстрое время)
...
Рейтинг: 0 / 0
Как подружить extJS и MySQL?
    #35725510
ShSerge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_Anastasia_...нужно объеденить extJS и mysql...
Очень просто объединяются. Вопрос а надо ли? extJS - то, что отображается на экране, mysql - то, что содержится в базе. Вопрос, а на сервере - пхп что-ли?. Вот и нужна маленькая программулина, которая берёт данные из базы и возвращает в формате, понятном экстжс (формат называется JSON).
...
Рейтинг: 0 / 0
Как подружить extJS и MySQL?
    #35725532
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> а если вписать все значения в отдельный файл, то не понятно, как его
> добавить

Так примерно (php)[src]include $_SERVER['DOCUMENT_ROOT']."/path/to/file.conf";[/srv]Хотя, по хорошему нужно подключать не конфиг, а скорей, класс для работы с БД, чтоб он уже самостоятельно добирался до конфига. Ну, принцип от этого не меняется.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Как подружить extJS и MySQL?
    #35725642
_Anastasia_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
IDVsbruck, Спасибо, попробую покопать в этом направлении.

ShSerge_Anastasia_...нужно объеденить extJS и mysql...
Очень просто объединяются. Вопрос а надо ли? extJS - то, что отображается на экране, mysql - то, что содержится в базе. Вопрос, а на сервере - пхп что-ли?. Вот и нужна маленькая программулина, которая берёт данные из базы и возвращает в формате, понятном экстжс (формат называется JSON).

В общем, есть скрипт, на php, который записывает полученные данные в БД, а потом, нужно как-то выводить эти данные на экран, если бы был просто php+mysql - проблем бы не было, но нужно подключить extJS, как скормить данные - проблем нету, json и так используется, проблема в другом, что file.js перестает работать, если в него вписать include\etc ... Был вариант использовать ajax, но при добавлении в скрипт любого ajax-кода, он перестает работать.

vkle
> а если вписать все значения в отдельный файл, то не понятно, как его
> добавить

Так примерно (php)[src]include $_SERVER['DOCUMENT_ROOT']."/path/to/file.conf";[/srv]Хотя, по хорошему нужно подключать не конфиг, а скорей, класс для работы с БД, чтоб он уже самостоятельно добирался до конфига. Ну, принцип от этого не меняется.

Если файл добавлять так, скрипт все равно перестает работать. А если можно, про класс подробнее, как тогда будут выводиться данные?
...
Рейтинг: 0 / 0
Как подружить extJS и MySQL?
    #35725764
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> Если файл добавлять так, скрипт все равно перестает работать.

С чего бы вдруг?... В общем то, посмотреть что творится в скрипте не сложно. По сути, происходит обращение от клиента к серверному скрипту. Точней, клиент отправляет какую то строку запроса. Пожалуй, самый простой способ при отправке запроса методом GET такой: открываем Live HTTP Headers и смотрим к какому скрипту идет обращение и какие данные передаются. Копируем этот адрес и данные и вставляем в адресную строку браузера (не забываем указать хост и отделить данные вопросиком). Далее переходим по этому адресу и отлаживаем скрипт как обычно.

> А если
> можно, про класс подробнее, как тогда будут выводиться данные?

На вывод данных это не влияет. Имел в виду способ подключения к базе. Нет никакого смысла в _каждом_ скрипте прописывать логин-пароль-хост, выполнять подключение к серверу, выбирать базу, выставлять кодировку. Гораздо удобнее это сделать в одном месте. Далее, запросы есть разные - SELECT, INSERT и т.д. Так понимаю, раз Вы пишете "Окон очень много", так и запросов разных будет немало )) Как правило, есть необходимость узнать не произошла ли ошибка при выполнении запроса, сколько строк было изменено/удалено, ну, и при селекте получить какие то данные. Довольно часто эти данные желательно получить в виде асоциативного массива, пригодного для дальнейшей обработки или строки, или просто количество записей - опять таки незачем копипастить код.
Можно вынести всё это в отдельные функции и собрать их в класс. Далее все обращения к базе делать только через методы этого класса. Так как все запросы проходят только там, то там же можно сделать запись запросов в лог-файл для отладки (если при формировании странички можно тупо всю отладку вывести в браузер, то с ajax такой номер не пройдет). Эммм... Пожалуй, это уже оффтопик попер, закругляюсь ))

Теперь, по поводу передачи данных из пхп-скрипта в жабий скрипт. Проверки и обработку исключений не пишу здесь, но добавить их нужно обязательно.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
<?php
// Допустим, в пхп-скрипте имеется некий список, сформированный в виде асоциативного массива.
$lst = array("param1"=>"bla", "param2"=>"bla-bla");
// Его нужно передать в жабаскрипт. Перекодируем в JSON
$json_list = json_encode($lst);
?>
<html>
<head>
  <script type="text/javascript" src="scripts.js"></script><!-- подключаем файл с нашими функциями -->
  <script type="text/javascript">
    // сюда попадают данные из PHP
    var lst<?php echo "='{$json_list}'"; ?>;
  </script>
</head>
<body onload="initList(lst);">
и так далее.....
В самом файле scripts.js делаем примерно следующее:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
var list; // в этот объект попадут данные после загрузки страницы

// принятые данные запихиваем в объект
function initList(jsonLst) {
  if(jsonLst) {
    list = eval('('+jsonLst+')');
  }
}
В принципе, можно банально упростить до примерно такого:
Код: plaintext
1.
2.
3.
  <script type="text/javascript">
    var list = eval('('+<?php echo $json_list; ?>+')'); // получаем объект с данными
  </script>
Ну, тут уже Вам решать, как лучше ))

PS в коде могут быть опечатки, писал без проверки, только чтоб передать идею
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Как подружить extJS и MySQL?
    #35726281
_Anastasia_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vkle, Спасибо большое!
>С чего бы вдруг?
Вот в том-то и проблема. При добавлении, например, <script></script> - перестает работать, при добавлении, например <? include("file"); ?>
Тоже перестает работать.
>На вывод данных это не влияет. Имел в виду способ подключения к базе. Нет никакого смысла в _каждом_ скрипте прописывать логин-пароль-хост, выполнять подключение к серверу, выбирать базу, выставлять кодировку. Гораздо удобнее это сделать в одном месте
Вот так и планировалось сделать, но этот файл нужно как-то заинклудить, а это не получается, так как скрипт перестает работать.
>Теперь, по поводу передачи данных из пхп-скрипта в жабий скрипт. Проверки и обработку исключений не пишу здесь, но добавить их нужно обязательно.
Примерно так и делалось, безуспешно. Из-за добавления <script></script> или каких-либо функций.
Если что, то я могу выложить шаблон, с которым работаю, там видно будет что скрипт перестает функционировать после изменений.
Есть еще один вариант решения, но он пока что не рассмативался, так как был найдет в каком-то блоге, и код немного не понятный, но завтра выложу найденный код и отпишу о результате, если он окажется рабочим, все будет намного проще;)
Спасибо еще раз за ответы!
...
Рейтинг: 0 / 0
Как подружить extJS и MySQL?
    #35726300
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Перечитал несколько раз. Не увидел даже и намека на текст сообщений об ошибках - одни только "перестаёт работать". Оно ж не просто так перестаёт, а из за ошибки. Отсюда ж не видно ни кода целиком, ни ошибок... Выкладывайте _тестовый_ пример с проблемным кодом, посмотрим. Или архивом проблемную часть проекта вместе с дампом используемых таблиц.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Как подружить extJS и MySQL?
    #35726330
_Anastasia_
file.js перестает работать, если в него вписать include\etc


Блин грамотеи. Смеетесь над бедной Настей.
...
Рейтинг: 0 / 0
Как подружить extJS и MySQL?
    #35726387
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И кто где смеётся? Чуть выше есть пример передачи данных из пхп в жабаскрипт.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Как подружить extJS и MySQL?
    #35726770
_Anastasia_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо всем, кто помогает решить вопрос;)
Вот пример скрипта:
http://rapidshare.com/files/175530112/desktop.rar.html - download.
http://slil.ru/26465664 - зеркало.

В файле sample.js пытаюсь изменить Grid-Window таким образом, чтоб arrayData брался из MySQL, но, пока что, безуспешно. Возможно у вас получится, но у меня даже на конструкцию <script></script> Скрипты болезненно реагируют.
Еще раз спасибо!
...
Рейтинг: 0 / 0
Как подружить extJS и MySQL?
    #35726853
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну млин... В примерах же есть как подгрузить данные....
Ладно, такой вариант:
Скрипт формирования данных my-data.php
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
<?php
// Для примера статично, в виде строки. В реале можно сформировать строку динамически.
echo "[
    ['The Coca-Cola Company',45.07,0.26,0.58,'9/1 12:00am'],
    ['The Procter & Gamble Company',61.91,0.01,0.02,'9/1 12:00am'],
    ['Wal-Mart Stores, Inc.',45.45,0.73,1.63,'9/1 12:00am'],
    ['Walt Disney Company (The) (Holding Company)',29.89,0.24,0.81,'9/1 12:00am']
]";
?>
Чуток изменим sample.js
Код: plaintext
1.
2.
3.
4.
5.
// фрагмент с  84  строки
                            ]),
//                             data: Ext.grid.dummyData,
                            url: 'my-data.php',
                            autoLoad: true
                        }),
и убираем всё, начиная с "// Array data for the grid", ибо оно не нужно
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Как подружить extJS и MySQL?
    #35726865
_Anastasia_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо огромнейшее! Не знаю чтоб я без вас делала! Буду пробовать, надеюсь, больше не придется доставать вас своими дратскими вопросами;)
Спасибо еще раз!
...
Рейтинг: 0 / 0
Как подружить extJS и MySQL?
    #35726869
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ещё вариант, с подгрузкой данных в формате XML: http://extjs.com/deploy/dev/examples/grid/xml-grid.html
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Как подружить extJS и MySQL?
    #35726880
_Anastasia_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
C php, то что нужно! Спасибо еще раз!
А еще возник вопрос, возможно ли подобное сделать с AccordionWindow? Например,
Код:
1.
2.
3.
4.
5.
children:[{
text:'Человек:', //Чтоб, допустим, было "Человек:<Проверка имени через БД>"
iconCls:'traf',
leaf:true
}

Так как там не испльзуется массив, с HTML проблемы нету, а вот с php появилась ...
...
Рейтинг: 0 / 0
Как подружить extJS и MySQL?
    #35726888
Фотография illion
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Модератор: так и идите на форум по PHP, незачем тут свалку устраивать. Если с ExtJS Вам уже все ясно и Вы не желаете дублировать объяснение в форуме PHP, то сообщите модератору о желании перенести тему в тот форум.
----------
illion
...
Рейтинг: 0 / 0
Как подружить extJS и MySQL?
    #35726901
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> возможно ли подобное сделать с AccordionWindow

Гляньте в документации, TreeLoader -> dataUrl - вроде оно.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Как подружить extJS и MySQL?
    #35727408
ZeusTheTrueGod
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А почему бы не переименовать этот топик в 'Do My Job, Please!!!'?
...
Рейтинг: 0 / 0
19 сообщений из 19, страница 1 из 1
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Как подружить extJS и MySQL?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]