Javascript-форум (https://javascript.ru/forum/)
-   ExtJS (https://javascript.ru/forum/extjs/)
-   -   Вывод с БД в таблицу [EXT JS] (https://javascript.ru/forum/extjs/29268-vyvod-s-bd-v-tablicu-%5Bext-js%5D.html)

RogeR31415 21.06.2012 20:37

nekto_O,
Все работает... Спасибище огромное! Буду разбираться дальше. Здоровья и удачи тебе добрый человек!

DjDiablo 21.06.2012 20:44

Вложений: 1
ещё одна демка.
ТОлько данные грузятся с сервера и формируются в PHP скрипте.
Смотреть после установки в денвер, иначе php несработает.
Демка в вложении.


Думаю допилить твой серверный код можно вот так.
<?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;
    }

    $result=Array(
	"success"=>true,
	"users"=>$rows;
    );

    echo json_encode($result);
    
    mysql_close($mysql);
?>

RogeR31415 21.06.2012 21:00

DjDiablo,
Перезалей пожалуйста... Последний байт не грузит.

RogeR31415 21.06.2012 21:00

DjDiablo,
Я на Zend'e сижу)

DjDiablo 21.06.2012 21:04

Вложений: 1
перезалил, Хотя архив всёравно читается с ошибкой. Чо-то здесь не так с вложениями

перезалил на депозит. Качайте отсюда.
На дипозите. Качать здесь

RogeR31415 22.06.2012 10:20

DjDiablo,
Круть! Я понял! Еще раз спасибо.

RogeR31415 22.06.2012 15:05

Вывести button!
 
Вот что есть...
==============
index.html
==============
<!DOCTYPE html>
 <html>
   <head>
    <title>Hospital</title>

	<script type="text/javascript" src='extjs/ext-all.js'></script>
	<link rel="stylesheet" type="text/css" href="extjs/resources/css/ext-all.css">

	<script type="text/javascript" src='app.js'></script>

   </head>

<body>
	
</body>
</html>


===========
get.php
===========
<?php
    $mysql = mysql_connect('localhost', 'root', '') or
		die("Could not connect: " . mysql_error());
    mysql_select_db('hospital');

    $query = 'select * from patient';
    $res = mysql_query($query);

    while ($row = mysql_fetch_assoc($res)) {
    $rows[] = $row;
    }

    echo json_encode($rows);
    
    mysql_close($mysql);
?>


=======
app.js
=======
Ext.onReady(function() {

var gc = [
    { dataIndex: 'id', header: 'ID', /*hidden: true*/ },
    { dataIndex: 'first_name', header: 'Name' },
    { dataIndex: 'last_name', header: 'Surname' },
    { dataIndex: 'time_1', header: 'time_1' },
    { dataIndex: 'time_2', header: 'time_2' },
    { dataIndex: 'time_3', header: 'time_3' },
    { dataIndex: 'date', header: 'Date', 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',
	
	proxy: {
        type: 'ajax',
        url: 'get.php',
        reader: 
		{
        type: 'json'
        }
			}

});

Ext.create('Ext.grid.Panel', {
    width: 700,
	columns: gc,
    renderTo: Ext.getBody(),
    store: store
});

store.load();
});




Вопрос... Как зделать чтобы в time_1 выводилась кнопочка при нажатии на которою появлялся лайтбокс?

DjDiablo 22.06.2012 21:19

по простому кнопку можно воткнуть так.
{
    dataIndex: 'time_1', 
    header: 'time_1' , 
    renderer: function(val){ return '<input type="button" click="alert('+val+')" />'; }
},


более продвинутый вариант.
{
    dataIndex: 'time_1', 
    header: 'time_1' , 
    function extjsRenderer(value) {
       var id = Ext.id();

       //функция запустится только через 25 милисекунд, это необходимо чтобы extjs успел прорисовать таблицу
       (function() {		
			var btn = new Ext.Button({
				renderTo: id,
				text: 'Price: ' + value
			});		
       }).defer(25);

       return (String.format('<div id="{0}"></div>', id));
   }
}

http://docs.sencha.com/ext-js/4-1/#!...t-method-defer

Родное средство дл создания конопок в таблице, как я понял только иконки
{
	            xtype:'actioncolumn',	     
	            items: [{

	                icon: 'http://im4-tub-ru.yandex.net/i?id=311939905-44-72',
	                tooltip: 'hello',
	                handler: function(grid, rowIndex, colIndex) {
			   	       alert("hello world");
	                }
	            }]
            },

RogeR31415 24.06.2012 13:32

расположение на экране
 
Спасибо! А как заняться выводом(расположением на экране)? Хочется чтоб по центру экрана выводилась табличка..?!

RogeR31415 25.06.2012 15:58

Как вывести grid по центру? .. layout: 'ux.center', не поддается че то (мож есть у него какие секреты?)


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