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)

nekto_O 26.06.2012 21:56

params: { date: Ext.Date.format(date, 'Y-m-d') }

в php скрипте var_dump($_POST); пустой массив принтует?

RogeR31415 26.06.2012 23:47

nekto_O,
Я б Вас расцеловал :dance:

Ответ пришел...




var_dump($_POST);
показал


array(1) {
  ["date"]=>
  string(10) "2012-06-18"
}


Спасибо огромное, очередной раз!!!

RogeR31415 26.06.2012 23:47

... как то странно, мой код тоже заработал... наверное влияние солнечной радиации)

RogeR31415 26.06.2012 23:51

handler: function(picker, date) {
        	var date = Ext.Date.format(date, 'Y-m-d');    
        	Ext.Ajax.request({
        		url: 'dget.php',    
        		//jsonData: { jdate: jdate },        		
				//params: { date: Ext.Date.format(date, 'Y-m-d') }
				params: { date: date }
        	});
        }


это первоначальный вариант - и работает... не пойму, что не нравилось коду 5 часов назад?..

RogeR31415 27.06.2012 11:18

=====
app.js
=====

Ext.onReady(function() {
	
var store = Ext.create('Ext.data.JsonStore', {
	proxy: {
    type: 'ajax',
    url: 'get.php',
    reader: {
		type: 'json'
		}	
	},			
	fields:[ 'id', 'first_name', 'last_name', 'date' ]		       
});
store.load();

Ext.create('Ext.panel.Panel', {
	style: 'margin-top: 20px; margin-left: 44%',
	renderTo: Ext.getBody(),
	border: false,
	items: [{
		xtype: 'datepicker',
		maxDate: new Date(),
    
		handler: function(picker, date) {
        	var date = Ext.Date.format(date, 'Y-m-d'); 
        	var flag = true;
        	Ext.Ajax.request({
        		url: 'dget.php',        		
				params: {date: date}
        	});
        }
   }]
});


Ext.create('Ext.grid.Panel', {
	width: 310,	
	style: 'margin-top: 20px; margin-left: 40%',
	layout: {
		type:'hbox',
		pack:'center'},    
	columns:[
	         {dataIndex: 'id', header: 'ID', hidden: true},
	         {dataIndex: 'first_name', header: 'Name'},
	         {dataIndex: 'last_name', header: 'Surname'},	      			               	      
	  
	         {xtype:'actioncolumn', 
	        	 width:20,
	        	 items: [{
	        	 icon: 'extjs/resources/themes/images/default/shared/right-btn.gif', 
	    
	        	 handler: function showWindow(){
	        	 	if(!win){
	        	 	var win = new Ext.Window({
	        	 		width:500,
	        	 		height:300,
	        	 		title: 'TEST',
	        	 		html:'<h1>My first lightBOX </h2>',
	        	 		layout:'fit',
	        	 		bodyStyle:{'background-color': '#FFFFFF'},
	        	 		modal: true
	    	            })    
	        	 	} win.show(); 
	        	 }
	    	 }]
	         },	    	    	  
	    
	         { dataIndex: 'date', header: 'Date' }],	     	    	  	  
	    
    renderTo: Ext.getBody(),
    store: store
});

});





Не могу реализовать такой алгоритм:
1)Выводиться панелька с календариком, и ждем пока я не выберу дату...
2) Если выбрал то делаем выборку по дате и вырисовуем грид с выбраными датами... Что то запутался(

RogeR31415 27.06.2012 14:19

XMLHttpRequest'ом?

RogeR31415 27.06.2012 16:27

Тоесть, я то получаю данные с пхп скрипта, но стор и грид то уже отработали свое... Получается при нажатии пустой грид - что весьма логично)

nekto_O 27.06.2012 17:44

Цитата:

Сообщение от RogeR31415
Тоесть, я то получаю данные с пхп скрипта, но стор и грид то уже отработали свое

что значит "отработали"? грид сам по себе данные не обрабатывает. А store всегда можно перечитывать
store.load({
     params: { ... }
});

RogeR31415 27.06.2012 18:12

Вроде этого?

Ext.create('Ext.panel.Panel', {
	style: 'margin-top: 20px; margin-left: 44%',
	renderTo: Ext.getBody(),
	border: false,
	items: [{
		xtype: 'datepicker',
		maxDate: new Date(),
    
		handler: function(picker, date) {
        	var date = Ext.Date.format(date, 'Y-m-d'); 
        	
        	Ext.Ajax.request({
        		url: 'put.php',        		
				params: {date: date}
        	});
        	
        	store.load({ // так параметры указывать?
        	     params: { id: 'id', first_name: 'first_name', last_name: 'last_name', date: 'date' }
        	});

        }
   }]
});

RogeR31415 27.06.2012 18:16

Вот скрипт
======
put.php
======


<?php
include 'conf.php';	
	
	$date = $_POST['date'];		
    $query = "select * from patient where date='$date'";        	 
    	
    $res = mysql_query($query);    	
    	    	
    	if (mysql_num_rows($res) == 0) { 
    	echo "On this day, the patients did not come!";  			
    	exit;
		}
    		while ($row = mysql_fetch_assoc($res)) { 			
   	 		$rows[] = $row;
   	 		}
    echo json_encode($rows);
 	  
mysql_close($db);
?>



Он дает в ответ на обращению к нему вот такое например по дате 06-18

Код:

[{"id":"1","first_name":"Vasiliy","last_name":"Pupkin","date":"2012-06-18"},{"id":"2","first_name":"Ivan","last_name":"Ivankin","date":"2012-06-18"}]
и получается что store.load может эти данные обработать...? Или как их споймать?


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