21.06.2012, 17:02
|
|
Аспирант
|
|
Регистрация: 21.06.2012
Сообщений: 34
|
|
Вывод с БД в таблицу [EXT JS]
Требуется осуществить вывод информации с БД (имя wp, одна таблица journal, три поля id surname name) в таблицу, grid как я понимаю. Я думаю кто то да сталкивался с таким делом - можете дать рабочий пример? Или обьяснить кому не тяжело... Нужно наверное взять данные json`ном с бд - передать в стор а потом в грид? Не могу никак все в кучу собрать... Жду помощи. За ранее благодарен Всем!
|
|
21.06.2012, 18:25
|
|
Аспирант
|
|
Регистрация: 21.06.2012
Сообщений: 34
|
|
есть json данные взятые с бд...
есть json данные взятые с бд...
[{"id":1,"surname":"фывфыв","name":"фывф ввв"},{"id":2,"surname":"фывыфаппре ","n ame":"кнокно"},{"id":3,"surname":"Putin","na me":"Vladimir"},{"id":4,"surname":"M edvedev","name":"Dmitriy"},{"id":5,"surname":"Yanu kovich","name":"Viktor"}]
Теперь надо создать хранилище?
|
|
21.06.2012, 18:44
|
|
Аспирант
|
|
Регистрация: 21.06.2012
Сообщений: 34
|
|
Спасибо с этим я тоже разобрался... Сейчас вот пытаюсь понять - этож
data:{'items':[....
Вместо этого надо подключить данные от сюда json_encode($rows); ?
|
|
21.06.2012, 18:57
|
Профессор
|
|
Регистрация: 04.02.2011
Сообщений: 1,815
|
|
нафига, хотя может быть можно и так, только вряд ли нужно
store.load() - обычно достаточно
========================
Опять же пример из документации.
Ext.define('userModel', {
extend: 'Ext.data.Model',
fields: ['name', 'surname']
});
var store = Ext.create('Ext.data.JsonStore', {
model: 'userModel',
proxy: {
type: 'ajax',
url: 'users.json',//адрес откуда берём инфу
reader: {
type: 'json',
root: 'users'
}
}
});
store.load();// грузим инфу с сервера
====================================
json файл приведите к виду.
{
success: true,
users: [
{"id":1,"surname":"фывфыв","name":"фывф� �ввв"},
{"id":2,"surname":"фывыфаппре� �","n ame":"кнокно"},{"id":3,"surname":"Putin","na me":"Vladimir"},
{"id":4,"surname":"M edvedev","name":"Dmitriy"},{"id":5,"surname":"Yanu kovich","name":"Viktor"}
]
}
фывыфаппре� � - что за кракозябры ?
__________________
Лучше калымить в гандурасе чем гандурасить на колыме
Последний раз редактировалось DjDiablo, 21.06.2012 в 19:10.
|
|
21.06.2012, 19:06
|
|
Аспирант
|
|
Регистрация: 21.06.2012
Сообщений: 34
|
|
Спасибо. Делаю. Кракозябры - там мое имя было и моей подруги (для конспирации) =)
|
|
21.06.2012, 19:13
|
Профессор
|
|
Регистрация: 04.02.2011
Сообщений: 1,815
|
|
Конспирируетесь говорите
Видимо у вас много подруг и половина из них на этом форуме
__________________
Лучше калымить в гандурасе чем гандурасить на колыме
|
|
21.06.2012, 19:19
|
|
Аспирант
|
|
Регистрация: 21.06.2012
Сообщений: 34
|
|
Правильно я думаю?
Я вообще с программированием (php) дружу... А сегодня вот начальник (я стажер) сказал за день все освоить [extjs] (не, не все - а типо ознакомиться и показать результат)... я над простым выводом инфы с бд сижу уже 4 часа.. а даже до грида не дошел(
Так должно быть как то? ---
----------
Файл show.js
----------
Смысл:
Задать модель, создать хранилище, а потом уже в грид и вывод?
типо...
Ext.define('showModel', {
extend: 'Ext.data.Model',
fields: ['id','surname', 'name', {name:'size', type: 'float'}, {name:'lastmod', type:'date', dateFormat:'timestamp'}]
});
var store = Ext.create('Ext.data.JsonStore', {
model: 'showModel',
proxy: {
type: 'ajax',
url: 'get.json',//адрес откуда берём инфу
reader: {
type: 'json',
root: 'images' (тут немного не понятно)
}
}
});
store.load();// грузим инфу с сервера
Вот файл get.php (он уже не нужен?) надо через *.json делать?
<?php
$mysql = mysql_connect('localhost', 'roor', '') or
die("Could not connect: " . mysql_error());
mysql_select_db('wp');
$query = 'select * from journal';
$res = mysql_query($query);
while ($row = mysql_fetch_assoc($res)) {
for ($i=0; $i < mysql_num_fields($res); $i++) {
$info = mysql_fetch_field($res, $i);
$type = $info->type;
if ($type == 'real')
$row[$info->name] = doubleval($row[$info->name]);
if ($type == 'int')
$row[$info->name] = intval($row[$info->name]);
}
$rows[] = $row;
}
echo json_encode($rows);
mysql_close($mysql);
?>
|
|
21.06.2012, 19:20
|
|
Аспирант
|
|
Регистрация: 21.06.2012
Сообщений: 34
|
|
не не! Я тут первый из моих друзей)
|
|
21.06.2012, 19:58
|
Профессор
|
|
Регистрация: 04.02.2011
Сообщений: 1,815
|
|
Цитата:
|
А сегодня вот начальник (я стажер) сказал за день все освоить [extjs].
|
неслабо
Цитата:
|
Вот файл get.php (он уже не нужен?) надо через *.json делать?
|
клиент забирает данные с сервера, а откуда появляются эти данные клиенту решительно пофиг. Это может быть готовый json файл, или он может диначески создаваться php скриптом. Но твой скрипт должен сгенерить json по моему образцу.
__________________
Лучше калымить в гандурасе чем гандурасить на колыме
Последний раз редактировалось DjDiablo, 21.06.2012 в 20:00.
|
|
21.06.2012, 20:09
|
С++/C# modest developer
|
|
Регистрация: 07.11.2011
Сообщений: 244
|
|
<!DOCTYPE html>
<html>
<head>
<title>demo</title>
<script src='http://dev.sencha.com/deploy/ext-4.0.7-gpl/ext-all.js'></script>
<link rel="stylesheet" href="http://dev.sencha.com/deploy/ext-4.0.7-gpl/resources/css/ext-all.css">
<script>
Ext.onReady(function() {
var gc = [
{ dataIndex: 'id', hidden: true },
{ dataIndex: 'name', header: 'Имя' },
{ dataIndex: 'surname', header: 'Фамилия', flex: 1 }
],
sf = [];
for(var i=0; i<gc.length; i++) {
sf.push(gc[i].dataIndex);
}
Ext.define('User', {
extend: 'Ext.data.Model',
fields: sf
});
var store = Ext.create('Ext.data.JsonStore', {
model: 'User',
data: [{"id":1,"surname":"фывфыв","name":"фывф� �ввв"},{"id":2,"surname":"фывыфаппре� �","name":"кнокно"},{"id":3,"surname":"Putin","name":"Vladimir"},{"id":4,"surname":"M edvedev","name":"Dmitriy"},{"id":5,"surname":"Yanu kovich","name":"Viktor"}]
});
Ext.create('Ext.grid.Panel', {
columns: gc,
renderTo: Ext.getBody(),
store: store
});
});
</script>
</head>
<body></body>
</html>
Соответственно вместо статического указания данных вам нужно использовать proxy, примерно так:
proxy: {
type: 'ajax',
url: 'get.php',
reader: {
type: 'json'
}
}
|
|
|
|