Foro

Ordenar un GRID completo

0
Hola a todos, realmente me gusta mucho este site, y la parte de cursos sobre todo. Al foro le falta bastante, por eso he decidido ayudar a medida que vaya aprendiendo. No tengo el conocimiento como para responder preguntas, pero como en este caso, a medida que vaya encontrando respuestas a mis preguntas, me gustaria ir poniendolas aqui. Esta vez lo que me paso es que tenia un grid lleno de info que venia desde una base MySQL, y al momento de ordenar por columnas, solo lo hacia con los resultados que habia en 'esa' pagina, no con todos los resultados de la consulta. La solucion es la siguiente: al store que llena al grid, se le[b] [color=#FF0000]agrega la propiedad remoteSort[/color][/b], de la siguiente manera:
var store = new Ext.data.JsonStore({
					url : './ajax/articles.php',  
					root : 'data',
					totalProperty : 'total',
					remoteSort : true, // esto es lo que hay que agregar
					fields : [
							 		'id',
									'title',
									'subtitle',
									'date_created',
									'img'
					]
				});
eso lo que hace es decir que cada vez que ordenemos, realice la consulta nuevamente, y envie dos parametros nuevos, el $_POST['sort'] y el $_POST['dir'], por lo tanto tambien hay que agregar algo de codigo al php, en mi caso al 'ajax/articles.php'
$sort = isset($_POST['sort'])?$_POST['sort']:'id';
$dir = isset($_POST['dir'])?$_POST['dir']:'DESC';
	
$q="SELECT * FROM cont_articles ORDER BY ".$sort." ".$dir;
Bueno, con eso se soluciona este problema. Espero pueda ayudar a alguien.... <!-- s:D --><!-- s:D -->
0
solo recuerda "limpiar" los parámetros "sort" y "dir" antes de ejecutar el query, ya que si lo dejas de esta forma te pueden hacer un SQLInjection muy fácil <!-- s:o --><!-- s:o --> saludos
0
Verdad, la verdad que no me habia enfocado en ese punto. Pero lo voy a acomodar. Gracias.

¿Conoces a alguien que pueda responder esta pregunta? Comparte el link en Twitter o Facebook

Es necesario registrarse para poder participar en el foro! Si ya tienes una cuenta puedes entrar y comentar en este foro.