Ejemplo jQgrid: Mostrar datos de una base de datos MySQL

En esta ocasión,  el ejemplo trata de como crear de forma rápida un datagrid en PHP utilizando jqGrid.

jqGrid

Es un control que permite mostrar y manipular información de forma tabular, los datos se cargan de forma dinamica mediante  Ajax y se integra con PHP, ASP, Java Servlets, JSP, ColdFusion, and Perl.

jqGrid:  Sitio oficial   Documentación  Demos

 

Ejemplo 1: Mostrar datos de una base de datos MySQL

BASE DE DATOS

Tabla: tblclientes

CREATE TABLE tblcliente (
idCliente smallint(4) unsigned zerofill NOT NULL AUTO_INCREMENT,
nombre varchar(45) ,
direccion varchar(50),
telefono varchar(16),
email varchar(45),
PRIMARY KEY (`idCliente`));

 

ARCHIVO HTML

Encabezados

Lo primero que tenemos que hacer es enlazar las hojas de estilo, la primera es la hoja de estilos de algun tema de jQuery UI, la segunda hoja la utiliza el grid. Después enlazamos los archivos javascript, el primero es la libreria jQuery, la siguiente es jQuery UI, posteriormente se incluye el archivo de idioma de jqGrid, este se utiliza en la paginacion y al final incluimos el archivo jqGrid

<html>
   <head>
        <!-- Hojas de estilo -->
        <link rel="stylesheet" type="text/css" media="screen" href="css/flick/jquery-ui-1.8.16.custom.css" />
        <link rel="stylesheet" type="text/css" media="screen" href="jqgrid/css/ui.jqgrid.css" />
        <!-- Archivos javascript -->
        <script src="js/jquery.min.js" type="text/javascript"></script>
        <script src="js/jquery-ui.min.js" type="text/javascript"></script>
        <script src="jqgrid/js/i18n/grid.locale-es.js" type="text/javascript"></script>
        <script src="jqgrid/js/jquery.jqGrid.min.js" type="text/javascript"></script>

 

 

Codigo de jqGrid

Una vez que ya enlazamos lo archivos necesarios para el grid, procedemos a configurar la opciones del grid de la siguiente forma.

  • url: Es la ruta del archivo PHP que procesara la petición ajax
  • datatype: Indica el tipo de información que regresara el servidor
  • mytype: Indica como se hará la petición ajax, “POST” o “GET”
  • colNames: Es un arreglo con los titulos de las columnas del grid
  • colModel: Es un arreglo que describe las opciones de cada columna, algunas opciones son las siguientes
    • name: Nombre de la columna
    • index: Es el nombre que se envía al servidor cuando se ordenan los datos
    • width: Indica el ancho de la columna
    • resizable: Indica si el ancho de la columna se puede redimensionar, los posible valores son true o false
    • align: Alineación del texto, los posible valores son: left, center, right
  • pager: Indica que elemento HTML que sera la barra de paginacion, se utiliza su atributo id
  • rowNum: Indica cuantas filas se mostraran por pagina
  • sortname: Indica el campo por el cual se ordenaran los datos
  • sortorder: Indica si se ordenaran de forma ascendente “asc” o descendente “desc”
  • viewrecords: Indica se se mostrara el numero de registros que tiene la tabla, puede ser true o false
  • captio: Indica el titulo del grid
        <script type="text/javascript">
            $(document).ready(function(){
           jQuery("#tblclientes").jqGrid({
                    url:'clientes.php',
                    datatype: 'json',
                    mtype: 'POST',
                    colNames:['ID','NOMBRE', 'DIRECCION','TELEFONO','EMAIL'],
                    colModel:[
                        {name:'idCliente', index:'idCliente', width:50, resizable:false, align:"center"},
                        {name:'nombre', index:'nombre', width:160,resizable:false, sortable:true},
                        {name:'direccion', index:'direccion', width:150},
                        {name:'telefono', index:'telefono', width:70},
                        {name:'email', index:'email', width:120}
                    ],
                    pager: '#paginacion',
                    rowNum:10,
                    rowList:[15,30],
                    sortname: 'idCliente',
                    sortorder: 'asc',
                    viewrecords: true,
                    caption: 'CLIENTES'
                });
            });
        </script>

CODIGO PHP

En el archivo PHP se recibe la petición y se realizan  dos consultas a la base de datos, la primera obtiene el numero de registros a mostrar  y la segunda recupera la información de los campos que se van a visualizar, después se crea la respuesta y se regresa como JSON.

 

<?php
    $page = $_POST['page'];  // Almacena el numero de pagina actual
    $limit = $_POST['rows']; // Almacena el numero de filas que se van a mostrar por pagina
    $sidx = $_POST['sidx'];  // Almacena el indice por el cual se hará la ordenación de los datos
    $sord = $_POST['sord'];  // Almacena el modo de ordenación

    if(!$sidx) $sidx =1;

    // Se crea la conexión a la base de datos
    $conexion = new mysqli("servidor","usuario","password","basedatos");

    // Se hace una consulta para saber cuantos registros se van a mostrar
    $result = $conexion->query("SELECT COUNT(*) AS count FROM tblcliente");

    // Se obtiene el resultado de la consulta
    $fila = $result->fetch_array();
    $count = $fila['count'];

    //En base al numero de registros se obtiene el numero de paginas
    if( $count >0 ) {
	$total_pages = ceil($count/$limit);
    } else {
	$total_pages = 0;
    }
    if ($page > $total_pages)
        $page=$total_pages;

    //Almacena numero de registro donde se va a empezar a recuperar los registros para la pagina
    $start = $limit*$page - $limit; 

    //Consulta que devuelve los registros de una sola pagina
    $consulta = "SELECT idcliente, nombre, direccion, telefono, email FROM tblCliente ORDER BY $sidx $sord LIMIT $start , $limit;";

    $result = $conexion->query($consulta);

    // Se agregan los datos de la respuesta del servidor
    $respuesta->page = $page;
    $respuesta->total = $total_pages;
    $respuesta->records = $count;
    $i=0;
    while( $fila = $result->fetch_assoc() ) {
        $respuesta->rows[$i]['id']=$fila["idCliente"];
        $respuesta->rows[$i]['cell']=array($fila["idCliente"],$fila["nombre"],$fila["direccion"],$fila["telefono"],$fila["email"]);
        $i++;
    }

    // La respuesta se regresa como json
    echo json_encode($respuesta);
?>

Puedes descargar el ejemplo

93 comentarios en “Ejemplo jQgrid: Mostrar datos de una base de datos MySQL”

  1. GUstavo dice:

    Estimado,

    en buneo el ejemplo, pero tengo una complicación de puro novato.
    Deseo ingresar un valor en un form, luego que despliegue el grid debajo del form con los datos encontrados (busca por 1 solo campo)
    Una vez desplegado poder seleccionar del Grid 1 para ver el detalle que puede ser en otra página. Las consultas son en MySql.
    Podrías ayudarme con esto?
    Muchas Gracias

    1. denker dice:

      Hola amigo.

      Si quieres enviar datos adicionales para utilizarlos en la consulta del grid lo tienes que pasar con la opcion postData de la siguiente forma:

      postData: {nombre:$("#elemento").val()}, o postData: {nombre:"algunnombre"},

      esto va en las opciones de configuracion del grid.

      En el servidor lo recibes como una variable POST
      $_POST["nombre"]

      Saludos

      1. angie dice:

        Holaa, espero que no haya pasado mucho tiempo,
        tengo el jgrid en una funcion .click de un boton para hacer consultas. pero el jgrid solo funciona una vez, que puedo hacer? graciasss

      2. IAN CARO dice:

        Hola buenas tardes una ayuda uso dos gris master-details como paso el el id del master con id de detalle para que que vinculadas al momento de agregar.
        Lo pongo manual y si funciona uso php-MySql no lo pasa por el POST
        Gracias

  2. walterc dice:

    Hola, que tal, descargue este ejemplo, tengo datos en la tabla tblcliente, modifique el archivo php, con los datos de conexion (servidor, user, pass, database) pero cuando ejecuto la demo, no me trae los valores, solo me muestra la grilla con los titulos, pero vacia de datos, este mismo ejemplo lo vi y lo descargue tambien de otro link y tambien me sucede lo mismo, me pueden dar una ayuda ?? he probado otro ejemplo con xml y funciona bien, muchas gracias

    1. denker dice:

      Hola, lo has intentado depurar con firebug para ver cual es la respuesta del servidor?

  3. jhon dice:

    me sale este error
    Creating default object from empty value in C:\xampp\htdocs\ejemplojqgrid\clientes.php on line 37
    y la linea mensionada es
    $respuesta->page = $page;

    podrias darme alguna sugerencia?

    1. denker dice:

      Jhon, solo agrega esta linea antes

      $respuesta = new stdClass();

      1. jhon dice:

        Gracias eres lo maximo…!!!

  4. Mario dice:

    Descargue el ejemplo, ya instale firebug pero al abrirlo no me muestra ningun error, sin embargo muestra el grid pero sin datos aunque la tabla ya esta, ya probe el codigo de conexion y esta funcionando, agregar la linea al inicio del codigo php y nada

    1. Cristian dice:

      Hola Mario… tengo el mismo problema. Lo pudiste solucionar ??
      Saludos

      1. Rolando Maldonado dice:

        Aqui lo veo es que la base de datos trae la estructura, nosotros bien pudieramos agregar manualmente unos datos de ejemplo para ver como funciona el ejemplo

  5. Felipe dice:

    Que tal! mira, me aparece un error, apuntando hacia esta línea
    $fila = $result->fetch_array();
    y también en el while, en esta línea:
    $fila = $result->fetch_assoc()
    me podrías apoyar por favor?
    Gracias!!!

  6. Vito dice:

    Hola, el mejor ejemplo que he encontrado en la web de jqgrid, los demás que he visto están demasiado confusos.

    Una consulta, si uno quisiera usar ese mismo grid para insertar valores a la base de datos es posible? así como para eliminar y editar.

    Saludos.

    1. denker dice:

      Hola amigo, si este grid te permite agregar nuevos elementos, modificarlos y eliminarlos, te recomiendo que revises la documentación y los demos ahí encontraras todo lo que necesitas para trabajar con el grid, saludos

      1. Vito dice:

        Gracias Denker, he estado revisando los ejemplos de la documentación pero no me han funcionado hasta el momento, voy a seguir revisando. Tienes algún ejemplo hecho?.

        Saludos.

  7. Jhonatan dice:

    Muchas gracias que buen ejemplo no encontraba ninguno tan bueno en la red para los que no les muestra los datos deben cambiar en la consulta de la linea 32 de clientes.php la parte donde dice idcliente y colocar la c en mayuscula idCliente gracias este ejemplo me ha sido de muchisima ayuda

  8. diego dice:

    no me aparecen los datos, me pasa lo mismo que a jhon pero al ingresar $respuesta = new stdClass(); tampoco resulto, me imagino $respuesta = new stdClass(); va antes de $respuesta->page = $page;

    1. denker dice:

      Asi es $respuesta = new stdClass(); va antes de $respuesta->page = $page;

  9. Roberto Gallardo dice:

    Hola que tal podrias hacer un ejemplo de uso del nuevo jqGrind 4.4.5… hasta ahora solo te habia seguido y con tus ejemplos me quedaba mas que claro, pero ahora tras sumergirme unas cuantas horas… en la nueva version no consigo nada! aunque sea un ejemplo simple que involucre el jqgrind nuevo, php y mysql… porque no logro hacer nada… sera por la compatibilidad con las actualizaciones de jQuery y JQuery UI?(las versiones anteriores de jqGrind no funcionan con las nuevas de jQuery y UI) por favor ilustranos con un ejemplo como el de esta pagina. De antemano gracias.

  10. José dice:

    Buenas yo hice todo y configure todo en appserver y no se ven los datos y tampoco me da ningún error que puede ser?

  11. Juan Mauricio dice:

    Hola Estoy aprendiendo jQuery me gusta tu ejemplo baje el archivo y lo implemente cree una base de datos que se llama Clientes y lo modifique para peder usarlo no me dio error de implementacion pero lo llene de datos y no me los muestra y no se cual es el error

    1. denker dice:

      Puedes depurarlo utilizando firebug para ver si el error esta en el javascript o en el php que no regresa la cadena de respuesta.

  12. ruben dice:

    AQUI DEJO UN EJEMPLO QUE FUNCIONA Y ME MUESTRA CORRECTAMENTE LOS REGISTROS, LUEGO DE TRATAR MAS DE 45 MINUTOS Y CONSULTAR ESTE Y OTROS FOROS. USEN ESTE SI AUN ESTAN PELEANDOSE CON LOS ANTERIORES. SALU2 🙂

    http://SSend.it/4DETg

    1. marco latorre dice:

      sale error al tratar de descargar

  13. Ccessaro dice:

    Gracias por este articulo, Me funciono muy bien, soy novato en programacion PHP yme gustaria saber como inserto datos a MySQL con JQuery y ademas mostrar un horario.
    Veo tambien que algunos no les funciona quiero decirles que cambien en las paginas HTML y PHP donde dice tblclientes y #clientes por el nombre de su tabla.
    Gracias por su ayuda.

    1. denker dice:

      Hola, aqui tienes un ejemplo de como insertar en una base de datos MySQL con utilizando jQuery y PHP http://www.codedrinks.com/guardar-la-informacion-de-un-formulario-en-una-base-mysql-con-ajax-de-jquery-y-php/

  14. Monica dice:

    Hola … Podrian ayudarme y a hacer que mi botón eliminar aparte de eliminar la fila del jqgrid elimine los registros de la base de datos. Hasta ahora manejo este codigo pero no elimina nada d la base. Trabajo a la par con Symfony.

    Para eliminar del jqgrid tengo …
    $(“#deleterows”).click(function(){
    var gr =jQuery(“#list2”).jqGrid(‘getGridParam’,’selrow’);
    var delid = jQuery(“#list2”).jqGrid(‘getRowData’,gr).id;
    if( gr != null ){
    jQuery(“#list2”).jqGrid(‘delGridRow’,gr,{width:400,reloadAfterSubmit:true,
    delData:{id:delid}});
    }else alert(“Selecciona una fila…”);
    });

    en mi apartado de consultas tengo :
    public function executeEditar(sfWebRequest $request) {
    $oper = $_POST[‘oper’];
    $id = $_POST[‘id’];
    switch ($oper) {
    .
    .
    .
    case ‘del’;
    $sql = “delete from noticias where id=$id”;
    mysql_query(“SET NAMES ‘utf8′”);
    if (mysql_query($sql)) {
    $fh = fopen(‘testFile.txt’, ‘w’) or die(“can’t open file”);
    fwrite($fh, $sql);
    fclose($fh);

    $this->redirect(‘noticias/index’);
    }
    break;
    }
    }

    Gracias!!!

  15. Marco dice:

    me da erro con page,rows,sidx. alguien puede auyarde por que es?

  16. andrexsos17 dice:

    Buen post, seria genial que tuvieras algún resaltador de codigo como la etiqueta

    o algún plugin, de resto todo muy bn, gracias por tu conocimiento

  17. Ariel dice:

    Quiero saber si esto se puede implementar en Cakephp y como podria hacerlo.
    Muchas Gracias!!!

    1. denker dice:

      Hola amigo, no lo he trabajado con cakephp pero si con codeigniter, el codigo jquery lo coloco en la vista(codigo HTML) el cual manda a llamar a un controlador(codigo PHP) para que obtenga los datos a mostrar.

  18. Fede dice:

    Hola.

    A mí no me funciona, me falla en la parte de:
    $respuesta->page = $page;
    $respuesta->total = $total_pages;
    $respuesta->records = $count;

    Yo uso PHP 5.4 y creo que no acepta ese código porque es para PHP 5.5, como sería esas mismas sentencias pero en las versiones antiguas?

    Gracias. Un saludo.

    1. sun2012 dice:

      solo agrega esta linea antes

      $respuesta = new stdClass();

  19. Iomsito dice:

    Buenass,
    Una consulta, a través de rowNum indicamos el número de filas que queremos mostrar, por ejemplo 15 pero en el grid solo puedo ver 7 (para ver el resto tengo que desplazarme hacia abajo, mediante la barita) ¿Como se puede configurar para que muestre los 15 registros o aumentar el tamaño (Altura) del grid?
    Gracias,
    Saudos

    1. denker dice:

      Con la propiedad height puedes indicar el alto del grid
      height:300

  20. Jurgen Ramírez dice:

    Hola quisiera saber como puedo hacer para alinear el nombre de una columna si tengo un nombre muy grande digo nombre de la columna y no de la propiedad es decir el titulo de la columna es muy grande quisiera saber la forma en que puedo acomodar para que se pueda visualzar, tengo en mente que se salte una linea es decir si el nombre es:

    Esto es Una prueba el incio de todo <– esto es el nombre suponiendo

    Esto es Una prueba <- Quisiera verlo asi
    El inicio de todo

    De antemano muchas gracias.

  21. erick dice:

    hermano como pudo hacer mas grande el grid???

  22. erick dice:

    y tmb decirme como agregar un boton pala eliminar por favor

    1. denker dice:

      Agregas el boton

      en las opciones del grid utilizas editurl y despues indicas el archivo que se va a encargar de eliminar el registro
      editurl:archivophp

      Al final agregas este codigo
      $(“#eliminar”).click(function(){
      var gr = jQuery(“#grid”).jqGrid(‘getGridParam’,’selrow’);
      if( gr != null ) jQuery(“#grid”).jqGrid(‘delGridRow’,gr,{reloadAfterSubmit:false});
      else alert(“Please Select Row to delete!”);
      });

  23. Jose dice:

    Buenos dias. Estoy interesado en usar el jqgrid pero de la siguiente manera:

    1. Quiero obtener datos de mi BD usando JAVA y obtener una grid agrupada por un dato, en el caso de mi BD el dato “factor”.
    2. Luego de tener la GRID agrupada por factores, deseo crear una subgrid para cada item dentro de los factores que me den los detalles que necesito mostrar.

    Hay posibilidad de usar grouping + subgrid?.

    Tienes algún ejemplo de uso con JAVA?.

    Gracias de antemano, Saludos.

    1. denker dice:

      Hola amigo, no tengo un ejemplo con java, saludos

  24. Gerard dice:

    Hola amigo un favor quise hacer funcionar tu ejemplo pero en la tabla jqgrid, pero no me despliega los datos de la consulta, hice la prueba mostrando clientes.php “echo json_encode($respuesta);” efectivamente se muestra con los datos requeridos correctamente pero no se despliega en el grid, cual podría ser el problema por favor tu colaboración me gusta mucho este grid por la sencillez.

    gracias Saludos

    1. marco latorre dice:

      verifica en el archivo cliente.php
      cuando realiza la consulta a la base de datos
      con el select , si te fijas parecen los campos que decea mostrar
      y ahi aparece idcliente y deberia ser idCliente
      yo realice esa modificacion y me funciono

      saludos

      1. Esteban dice:

        Gracias, era un pequeño pero importante detalle.

  25. marco latorre dice:

    gracias por el ejemplo me sirvió mucho,
    una acotación, que al descargar el ejemplo y tratar de que funcionara
    me di cuenta que no mostraba los datos y verificando el codigo me fije que
    los datos no los mostraba simplemente porque cuan hace el llamado de la base de datos
    con el select (en el archivo cliente.php) el campo idCliente sale con minúscula , realice ese cambio solamente
    y buala funciono …ja por si a alguien le sirve

    saludos

  26. nestor dice:

    hola, este ejemplo ha sido tremendo de ayuda!!!tengo unas preguntas…
    1. se que utiliza Mysql pero no veo las sentencias tradicionales como:
    mysql_fetch_array, mysql_query etc que tipo de SQL usa para resumir estas sentencias?

    2.tengo la necesidad de implementar este mismo grid a postgresql. Que me recomienda: cambias las sentecias de mysql a postgresql o estudiar a fondo cada sentencias de codigo, para ver si emulo uno para que funcione para posgresql…

    3.si en caso de la segunda pregunda debo de implementar posgresql bajo un enfoque diferente, podria hacer un pequeno ejemplo de clientes.php con postgresql para tener nocion como funciona…me ayudaria mucho para un proyecto que estoy haciendo y el tiempo es mi limitante 🙁

  27. Gustavo dice:

    Estimado hay un error en la linea 32 de cientes.php, tiene que ver con el “select” … se debe modifcar “idcliente” por “idCliente” y así me funciono 🙂

  28. mary dice:

    NO SE PROGRAMAR XD…descargue el ejemplo pero NO ENTIENDO como poner para que me elimine los datos de la tabla… ;( alguien me dice como

  29. J, Rene dice:

    lo baje, corregi el IdCliente en la linea 32 y veo el firebug y no me muestra ningun error, y sigue sin mostrarme los datos, ingrese 3 datos y no me muestra nada. Agradesco algun detalle mas que falta.

  30. robin medina dice:

    Gracias muchas gracias muy bueno so habia que corregir la linea 32 la consulta el “idcliente” por “idCliente” y luego en la linea 37 antes de esta colocar esto $respuesta = new stdClass(); gracias

  31. Rafa dice:

    Hola.

    Me he descargado tu archivo de prueba, tras corregir el por qué no me salían datos (tienes una separación en el SELECT COUNT(*) entre el count y el paréntesis, veo que no las celdas no se pueden seleccionar.

    ¿Me puedes ayudar por favor?

  32. rodrigo dice:

    Mi duda es de donde descargo las hojas de estilo y las librerias js que se utilizan en el ejemplo. Gracias

  33. frijolito dice:

    Hola amigo muy buen tutorial claro y entendible, pero ami me sale muchos errores

    ( ! ) SCREAM: Error suppression ignored for
    ( ! ) Notice: Undefined index: page in E:\PROYECTOS\www\samples\jqgrid\ejemplojqgrid\clientes.php on line 2
    Call Stack
    # Time Memory Function Location
    1 0.0014 688568 {main}( ) ..\clientes.php:0

    ( ! ) SCREAM: Error suppression ignored for
    ( ! ) Notice: Undefined index: rows in E:\PROYECTOS\www\samples\jqgrid\ejemplojqgrid\clientes.php on line 3
    Call Stack
    # Time Memory Function Location
    1 0.0014 688568 {main}( ) ..\clientes.php:0

    ( ! ) SCREAM: Error suppression ignored for
    ( ! ) Notice: Undefined index: sidx in E:\PROYECTOS\www\samples\jqgrid\ejemplojqgrid\clientes.php on line 4
    Call Stack
    # Time Memory Function Location
    1 0.0014 688568 {main}( ) ..\clientes.php:0

    ( ! ) SCREAM: Error suppression ignored for
    ( ! ) Notice: Undefined index: sord in E:\PROYECTOS\www\samples\jqgrid\ejemplojqgrid\clientes.php on line 5
    Call Stack
    # Time Memory Function Location
    1 0.0014 688568 {main}( ) ..\clientes.php:0

    ( ! ) SCREAM: Error suppression ignored for
    ( ! ) Warning: Division by zero in E:\PROYECTOS\www\samples\jqgrid\ejemplojqgrid\clientes.php on line 22
    Call Stack
    # Time Memory Function Location
    1 0.0014 688568 {main}( ) ..\clientes.php:0

    ( ! ) SCREAM: Error suppression ignored for
    ( ! ) Fatal error: Call to a member function fetch_assoc() on a non-object in E:\PROYECTOS\www\samples\jqgrid\ejemplojqgrid\clientes.php on line 45
    Call Stack
    # Time Memory Function Location
    1 0.0014 688568 {main}( ) ..\clientes.php:0

    estoy usando php 5.3 y mysql 5.5 por favor ayudarme ya que estoy empezando en un nuevo proyecto(soy novato en php =D) y me parece interesante este control

  34. frijolito dice:

    es mas ya puse lo que mensionas lineas arriba de
    $respuesta = new stdClass(); y nada!!

  35. adrian dice:

    Hola, estoy usando las tablas jqgrid, y tengo una pregunta, ¿es posible ( y de ser así, como) a la hora de definir la tabla indicar que un campo de un registro no puede ser Null?, es decir cuando se quiera modificar o añadir una nueva linea en la tabla que no te deje dejar un campo vacío? gracias

  36. After dice:

    hola si no le smuestra datos, aun cuando la tabla tiene registros entonces cambia en PHP el idCliente por idcliente en minuscula 🙂

  37. Daniel dice:

    AYUDA – SOS

    groupText

    Tengo dos campos denominados xx y ZZ otro nombre
    Creo que esta línea de código y obtener el total de xx y zz

    “groupText” => array (‘ Total XX: {xx} ‘, ‘ Total ZZ: {zz} ‘)
    Lo que quiero es ver la diferencia o el resultado de una resta entre XX – ZZ = WW

    “groupText” => array (‘ Debe XX: {xx} ‘, ‘ Haber ZZ: {zz} ‘, ‘ Saldo WW: {xx – zz = ww} ‘)

    ¡¡ Alguien que sepa como hacerlo !!! …

  38. Victor Cedeño dice:

    Excelentes ejemplos para los programadores que desean implementar estos recursos.

  39. Max dice:

    Amigo un exelente y como ejemplo de ehco me sale todo bien con una base de datos mysql, pero ahora requiero implementarlo con una base de datos sql server, y ya tengo muchos dias intentando y la verdad no puedo AYUDAAAA¡¡¡ 🙁

  40. EdmundoGm dice:

    Os comento que a mi no me funciona….!!!!!
    descargue el ejemplo con la esperanza que me funcionara pero no fue asi…
    tengo la base de datos en orden, todo en minúsculas, tanto en el php como en el html donde se hace referencia… y me sale el gridview sin datos…. al cargar solo el php… por ende da errores, pero imprimí la cantidad de registros y la consulta si trae datos… el problema es que el grid no los carga…. talvez en la creación de la expresion jason este el problema…. si lo soluciono.. pues lo sabran… caso contrario me gustaría QUE ALGUIEN YE YA LE SALIO PUEDA POSTEAR UN ENLACE DE DESCARGA…. please!!
    Dios bendiga a todos!

  41. Diego Bustamante dice:

    Descargue el demos modifique el archivo clientes.php con mi base3s de datos y me funciona perfecto muchas gracias y excelente aporte, solo que la grilla me sale pequeña como hago para que aparezca en toda la pagina o se expanda solo, y como agrego una linea de busqueda, gracias por su ayuda.

    1. Patricio dice:

      Como lo hiciste??? a mi no me funciona. Que modificaste???

      1. GBECiau dice:

        Debes modificar el nombre de la tabla, en concreto la le C (mayúscula) por la c(minúscula)

      2. GBECiau dice:

        Este ejemplo esta muy completo, ahora lo que quiero hacer es seleccionar una fila y que me paso los datos de esa fila en unos cuadros de texto, y que cambie el contenido de los cuadros de texto segun vayamos cambiando la fila seleccionada

  42. luis carlos prieto dice:

    hola gracias por el aporte. pero no me quiere aparecer los datos en la grilla. no me sale error.

  43. Jose dice:

    El 9 de marzo del año pasado pregunte acerca de un ejemplo para java. Y aunque no obtuve respuesta positiva, el ejemplo mostrado aqui me sirivio de mucho. Casi tengo un doctorado en JQGRID.. Tremenda libreria. Recomendada

    La utilice en mi tesis de grado, quedo genial.

    Saludos

  44. Mario dice:

    Hola quisiera ver si me pueden ayudar, quiero hacer en el grid que se me desplegue la informacion en forma de arbol, cual es el codigo para hacer eso?
    gracias

  45. David dice:

    Excelente explicación, una duda como mejora.

    Me gustaría tener aparte los datos de conexión a la base de datos, ya que lo uso para más cosas, asi en caso de cambiar solo lo cambiaría en un sitio he probado así como pongo aqui abajo (que es como lo tengo hecho en otros sitios) pero cuando lo pongo me da error y no consigo que me coja los valores, esto es lo que quiero hacer (variables.php contiene esas variables inicializadas):

    include ‘/formulario/variables.php’;
    // Se crea la conexión a la base de datos
    $conexion = new mysqli($hostname,$user,$pass,$bdname);

  46. David dice:

    Ammm otra duda importantísima para mi, es posible hacer que la tabla sea adaptable (responsive) es que lo necesito para una web con accesibilidad móvil obligatoria y por lo que veo, no lo es.

  47. Pablo dice:

    Estimados:

    Les cuento , el json me retorna lo siguiente:

    {“page”:”1″,”total”:1,”records”:”4″,”rows”:{“1”:{“centro”:”Alto Las Condes\r\n”,”diciembre”:[1]}}}

    Pero al momento de intentar mostrar centro no me aparece … por que puede ser ?

  48. Felipe dice:

    Hola disculpa una consulta a este grip le puedo agregar opciones como borrar o actualizar?

    1. sun2012 dice:

      Hola, si se le puede agregar, saludos.

  49. Ariel Barrozo dice:

    necesito saber si es posible que un excel tome valores de autocompletados valores que estan alojados en una base de datos mysql, esto es necesario para cargar informacion en forma masiva, y evitar que los data entries, vayan de pantalla en pantalla, con excel o planilla es mas rapido, saber si esto se puede o alguien lo hizo, desde ya gracias…….

    1. sun2012 dice:

      si puedes programar algun macro, saludos.

  50. IAN CARO dice:

    HOLA EXELENTE TU BLOG UNA AYUDA …..
    COMO PUEDO IMPLEMETAR LA BUSQUEDA HICE LO QUE DICE EL BLOG, NO MANDA ERROR PERO NO FILTRA HAY QUE HACER ALGO EN EL CODIGO PHP???

    GRACIAS IAN CARO

  51. Cristian dice:

    Hola…
    Alguien me puede decir (porque no lo estoy viendo) donde esta en el Jquery donde están las variables que el PHP toma mediante el $_POST:

    $page = $_POST[‘page’]; // Almacena el numero de pagina actual
    $limit = $_POST[‘rows’]; // Almacena el numero de filas que se van a mostrar por pagina
    $sidx = $_POST[‘sidx’]; // Almacena el indice por el cual se har� la ordenaci�n de los datos
    $sord = $_POST[‘sord’]; // Almacena el modo de ordenaci�n

    O sea no veo como las pasa porque no encuentro esos valores en el Jquery.

    Gracias

    1. sun2012 dice:

      hola, eso que mencionas es la paginación interna de la libreria por eso no esta dentro de los codigos que se usan para el ejemplo, solo se ponen por que la libreria los necesita.

      1. Cristian dice:

        Perfecto… Muchas gracias sun2012.
        Saludos

  52. Miker dice:

    hola un gran favor, quisiera seleccionar un registro dentro del jqgrid y pasar una variable de un campo

  53. Que buen aporte, me ha servido mucho! gracias

  54. hola, muy buen aporte, lo implemente con otra tabla que tengo en mi BD y funciono ok. Muchas gracias, sera posible que me indiques como puedo implementar un evento como por ejemplo hacer click sobre un registro y que me direccione a otra ventana donde puedo crear otros dtos. Ejemplo click sobre un registro y que te muestre en otra ventana todos los datos del registro.

  55. Sofia M dice:

    Tengo un problema y no me trae los datos de mysq. AYUDA

  56. granedoy dice:

    En el error log me sale esto

    [16-Mar-2017 08:22:46 America/Denver] PHP Warning: mysqli::query(): Couldn’t fetch mysqli in /home1/tripeord/public_html/php/ejemplojqgrid/clientes.php on line 13
    [16-Mar-2017 08:22:46 America/Denver] PHP Fatal error: Call to a member function fetch_array() on a non-object in /home1/tripeord/public_html/php/ejemplojqgrid/clientes.php on line 16

  57. Carlos dice:

    Ojala alguien me responda :c
    Antes que nada gracias por el ejemplo. lo ejecute y esta perfecto.
    Pero estoy tratando de ejecutarlo al abrir una ventana modal. pero no me carga.
    Espero alguna alma me ayude :c
    Saludos

  58. tabcelovi dice:

    no se si aun recibes preguntas, pero a mi no me despliega datos, solo veo la grilla gráfica, un log de cargando y no me trae nada. uso wamp. Saludos a ver si alguien me ayuda…

    1. Pablo Pinedo dice:

      Hola te aconsejo que revises los post decomentarios, yo segui el ejemplo exactamente y tambien tuve el mismo problema revisa en especial la creacion de stdclass() un abrazo.

      1. sun2012 dice:

        hola puedes descargar el código fuente del ejemplo.

  59. tabcelvi dice:

    quedo atento gracias…

  60. Arlette Barras Reyes dice:

    hola, buenas días, ejecute el ejemplo y si funciona, pero tengo un detalle que aun no logro entender cada que sustituyo las consultas, con las tablas que deseo mostrar el grid deja de funcionar , es decir no muestra nada

Deja un comentario