{"id":1332,"date":"2011-12-27T13:29:19","date_gmt":"2011-12-27T13:29:19","guid":{"rendered":"https:\/\/www.jose-aguilar.com\/blog\/?p=1332"},"modified":"2012-02-25T14:18:48","modified_gmt":"2012-02-25T14:18:48","slug":"paginar-consultas-con-php-mysql-y-ajax","status":"publish","type":"post","link":"https:\/\/www.jose-aguilar.com\/blog\/paginar-consultas-con-php-mysql-y-ajax\/","title":{"rendered":"Paginaci\u00f3n de consultas con PHP, MySQL y AJAX"},"content":{"rendered":"<p>Si desemos paginar los resultados de una consulta, podemos hacerlo con PHP y quedar\u00eda excelente, pero sin embargo, si queremos que al momento de pasar de una p\u00e1gina a otra no recarge toda la p\u00e1gina sino solo el contenido que nos interesa. Para ello podemos hacer uso de AJAX.<\/p>\n<p>Por ejemplo, nuestra tabla de art\u00edculos tiene m\u00e1s de 200 registros, cargar esos 200 art\u00edculos en una p\u00e1gina web tomar\u00eda su tiempo. As\u00ed que es mejor si los mostramos por p\u00e1ginas o bloques de 10 registros (por ejemplo) , y colocamos el n\u00famero de p\u00e1ginas en forma de enlaces para navegar por los todas las p\u00e1ginas. En el caso del ejemplo, ser\u00eda algo de 20 p\u00e1ginas (200\/10).<\/p>\n<p>Para realizar todo lo mencionado vamos a hacer uso del lenguaje PHP, MySQL como gestor de Base de Datos y AJAX.<\/p>\n<p>Deberemos crear y configurar un archivo para conectar con la base de datos que llamaremos \u00abconexion.php\u00bb y contendr\u00e1 lo siguiente:<\/p>\n<pre>&lt;?php\r\n\/\/Configuracion de la conexion a base de datos\r\n$bd_host = \"servidor\";\r\n$bd_usuario = \"usuario\";\r\n$bd_password = \"contrase\u00f1a\";\r\n$bd_base = \"mibasededatos\";\r\n$con = mysql_connect($bd_host, $bd_usuario, $bd_password);\r\nmysql_select_db($bd_base, $con);\r\n?&gt;<\/pre>\n<p>Ahora en un archivo <strong>JavaScript<\/strong>, el cual llamaremos <strong>ajax.js<\/strong> hacemos uso del objeto <strong>XMLHttpRequest<\/strong> para hacer peticiones al servidor sin necesidad de recargar toda una p\u00e1gina web. Tambi\u00e9n, crearemos la funci\u00f3n llamada <strong>Pagina(nroPagina)<\/strong>, esta recibir\u00e1 un valor correspondiente a un n\u00famero de p\u00e1gina y se enlazar\u00e1 con el archivo <strong>paginador.php<\/strong> para procesar ese n\u00famero de p\u00e1gina. Y el resultado se mostrar\u00e1 en la capa (&lt;div id=\u00bbcontenido\u00bb&gt;.<\/p>\n<pre>function objetoAjax(){\r\n\u00a0var xmlhttp=false;\r\n\u00a0 try{\r\n\u00a0 \u00a0xmlhttp = new ActiveXObject(\"Msxml2.XMLHTTP\");\r\n\u00a0 }catch(e){\r\n\u00a0 \u00a0try {\r\n\u00a0 \u00a0 xmlhttp = new ActiveXObject(\"Microsoft.XMLHTTP\");\r\n\u00a0 \u00a0}catch(E){\r\n\u00a0 \u00a0 xmlhttp = false;\r\n\u00a0 \u00a0}\r\n\u00a0 }\r\n\u00a0 if (!xmlhttp &amp;&amp; typeof XMLHttpRequest!='undefined') {\r\n\u00a0 \u00a0xmlhttp = new XMLHttpRequest();\r\n\u00a0 }\r\n\u00a0 return xmlhttp;\r\n}\r\n\r\nfunction Pagina(nropagina){\r\n\u00a0\/\/donde se mostrar\u00e1 los registros\r\n\u00a0divContenido = document.getElementById('contenido');\r\n\r\n\u00a0ajax=objetoAjax();\r\n\u00a0\/\/uso del medoto GET\r\n\u00a0\/\/indicamos el archivo que realizar\u00e1 el proceso de paginar\r\n\u00a0\/\/junto con un valor que representa el nro de pagina\r\n\u00a0ajax.open(\"GET\", \"paginador.php?pag=\"+nropagina);\r\n\u00a0divContenido.innerHTML= '&lt;img src=\"anim.gif\"&gt;';\r\n\u00a0ajax.onreadystatechange=function() {\r\n\u00a0 if (ajax.readyState==4) {\r\n\u00a0 \u00a0\/\/mostrar resultados en esta capa\r\n\u00a0 \u00a0divContenido.innerHTML = ajax.responseText\r\n\u00a0 }\r\n\u00a0}\r\n\u00a0\/\/como hacemos uso del metodo GET\r\n\u00a0\/\/colocamos null ya que enviamos\r\n\u00a0\/\/el valor por la url ?pag=nropagina\r\n\u00a0ajax.send(null)\r\n}<\/pre>\n<p>El archivo principal de este proceso es <strong>paginador.php<\/strong>, este archivo es el encargado de mostrar los registros dependiendo de la p\u00e1gina elegida y tendr\u00e1 la siguiente estructura:<\/p>\n<pre>&lt;?php\r\nrequire('conexion.php');\r\n$RegistrosAMostrar=4;\r\n\r\n\/\/estos valores los recibo por GET\r\nif(isset($_GET['pag'])){\r\n\u00a0\u00a0 \u00a0$RegistrosAEmpezar=($_GET['pag']-1)*$RegistrosAMostrar;\r\n\u00a0\u00a0 \u00a0$PagAct=$_GET['pag'];\r\n\u00a0\u00a0 \u00a0\/\/caso contrario los iniciamos\r\n}else{\r\n\u00a0\u00a0 \u00a0$RegistrosAEmpezar=0;\r\n\u00a0\u00a0 \u00a0$PagAct=1;\r\n}\r\n\r\n$query = \"SELECT post_date, post_title, post_name, DATE_FORMAT(post_date, '%d-%m-%Y') as fecha\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0FROM table\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0ORDER BY post_date desc\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0LIMIT $RegistrosAEmpezar, $RegistrosAMostrar\";\r\n\r\n$Resultado=mysql_query($query, $con);\r\necho \"&lt;table border='1px'&gt;\";\r\nwhile($MostrarFila=mysql_fetch_array($Resultado)){\r\n\u00a0\u00a0 \u00a0echo \"&lt;tr&gt;\";\r\n\u00a0\u00a0 \u00a0echo \"&lt;td&gt;\".$MostrarFila['post_name'].\"&lt;\/td&gt;\";\r\n\u00a0\u00a0 \u00a0\/*if ($PagAct == 1)\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0echo \"&lt;td&gt;\".$MostrarFila['post_title'].\"&lt;\/td&gt;\";\r\n\u00a0\u00a0 \u00a0else*\/\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0echo \"&lt;td&gt;\".utf8_encode($MostrarFila['post_title']).\"&lt;\/td&gt;\";\r\n\u00a0\u00a0 \u00a0echo \"&lt;td&gt;\".$MostrarFila['fecha'].\"&lt;\/td&gt;\";\r\n\u00a0\u00a0 \u00a0echo \"&lt;\/tr&gt;\";\r\n}\r\necho \"&lt;\/table&gt;\";\r\n\r\n$NroRegistros=mysql_num_rows(mysql_query(\"SELECT * FROM table\",$con));\r\n$PagAnt=$PagAct-1;\r\n$PagSig=$PagAct+1;\r\n$PagUlt=$NroRegistros\/$RegistrosAMostrar;\r\n\r\n\/\/verificamos residuo para ver si llevar\u00e1 decimales\r\n$Res=$NroRegistros%$RegistrosAMostrar;\r\n\/\/ si hay residuo usamos funcion floor para que me\r\n\/\/ devuelva la parte entera, SIN REDONDEAR, y le sumamos\r\n\/\/ una unidad para obtener la ultima pagina\r\nif($Res&gt;0) $PagUlt=floor($PagUlt)+1;\r\n\r\n\/\/desplazamiento\r\necho \"&lt;a onclick=\\\"Pagina('1')\\\"&gt;Primero&lt;\/a&gt; \";\r\nif($PagAct&gt;1) echo \"&lt;a onclick=\\\"Pagina('$PagAnt')\\\"&gt;Anterior&lt;\/a&gt; \";\r\necho \"&lt;strong&gt;Pagina \".$PagAct.\"\/\".$PagUlt.\"&lt;\/strong&gt;\";\r\nif($PagAct&lt;$PagUlt)\u00a0 echo \" &lt;a onclick=\\\"Pagina('$PagSig')\\\"&gt;Siguiente&lt;\/a&gt; \";\r\necho \"&lt;a onclick=\\\"Pagina('$PagUlt')\\\"&gt;Ultimo&lt;\/a&gt;\";\r\n?&gt;<\/pre>\n<p>El archivo <strong>index.php<\/strong> tendr\u00e1 un tabla HTML con tres columnas (Nombre, Titulo, Fecha) y un capa (&lt;div&gt;) llamado \u00ab<strong>contenido<\/strong>\u00bb dentro de la cual haremos un include del archivo <strong>paginador.php<\/strong>.<\/p>\n<pre>&lt;html&gt;\r\n&lt;head&gt;\r\n&lt;title&gt;Paginar Resultados&lt;\/title&gt;\r\n&lt;script type=\"text\/javascript\" src=\"ajax.js\"&gt;&lt;\/script&gt;\r\n&lt;style&gt;\r\ntd{\r\n\u00a0width:200px;\r\n}\r\na{\r\n\u00a0text-decoration:underline;\r\n\u00a0cursor:pointer;\r\n}\r\n&lt;\/style&gt;\r\n&lt;\/head&gt;\r\n&lt;body&gt;\r\n&lt;div style=\"margin:auto;width:500px;text-align:center;\"&gt;\r\n\u00a0&lt;table border=\"1px\"&gt;\r\n\u00a0 &lt;tr&gt;\r\n\u00a0 \u00a0&lt;td&gt;Nombres&lt;\/td&gt;\r\n\u00a0 \u00a0&lt;td&gt;Departamento&lt;\/td&gt;\r\n\u00a0 \u00a0&lt;td&gt;Sueldo&lt;\/td&gt;\r\n\u00a0 &lt;\/tr&gt;\r\n\u00a0&lt;\/table&gt;\r\n\u00a0&lt;div id=\"contenido\"&gt;\r\n\u00a0 &lt;?php include('paginador.php')?&gt;\r\n\u00a0&lt;\/div&gt;\r\n&lt;\/div&gt;\r\n&lt;\/body&gt;\r\n&lt;\/html&gt;<\/pre>\n<p><a href=\"https:\/\/www.jose-aguilar.com\/scripts\/php\/pagination-ajax\/\">Ver ejemplo en funcionamiento<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Si desemos paginar los resultados de una consulta, podemos hacerlo con PHP y quedar\u00eda excelente, pero sin embargo, si queremos que al momento de pasar de una p\u00e1gina a otra no recarge toda la p\u00e1gina sino solo el contenido que nos interesa. Para ello podemos hacer uso de AJAX. Por ejemplo, nuestra tabla de art\u00edculos [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":6469,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[31,18,3],"tags":[34],"class_list":["post-1332","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-ajax","category-mysql","category-php","tag-paginacion"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v25.6 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Paginaci\u00f3n de consultas con PHP, MySQL y AJAX - Jose Aguilar Blog<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<meta property=\"og:locale\" content=\"es_ES\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Paginaci\u00f3n de consultas con PHP, MySQL y AJAX - Jose Aguilar Blog\" \/>\n<meta property=\"og:description\" content=\"Si desemos paginar los resultados de una consulta, podemos hacerlo con PHP y quedar\u00eda excelente, pero sin embargo, si queremos que al momento de pasar de una p\u00e1gina a otra no recarge toda la p\u00e1gina sino solo el contenido que nos interesa. Para ello podemos hacer uso de AJAX. Por ejemplo, nuestra tabla de art\u00edculos [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.jose-aguilar.com\/blog\/paginar-consultas-con-php-mysql-y-ajax\/\" \/>\n<meta property=\"og:site_name\" content=\"Jose Aguilar Blog\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/joseaguilarblog\" \/>\n<meta property=\"article:published_time\" content=\"2011-12-27T13:29:19+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2012-02-25T14:18:48+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.jose-aguilar.com\/blog\/wp-content\/uploads\/2014\/10\/Imagen-no-disponible-282x300.png\" \/>\n\t<meta property=\"og:image:width\" content=\"282\" \/>\n\t<meta property=\"og:image:height\" content=\"300\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Jose Aguilar\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@JoseAguilarBlog\" \/>\n<meta name=\"twitter:site\" content=\"@JoseAguilarBlog\" \/>\n<meta name=\"twitter:label1\" content=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"Jose Aguilar\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tiempo de lectura\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.jose-aguilar.com\/blog\/paginar-consultas-con-php-mysql-y-ajax\/\",\"url\":\"https:\/\/www.jose-aguilar.com\/blog\/paginar-consultas-con-php-mysql-y-ajax\/\",\"name\":\"Paginaci\u00f3n de consultas con PHP, MySQL y AJAX - Jose Aguilar Blog\",\"isPartOf\":{\"@id\":\"https:\/\/www.jose-aguilar.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.jose-aguilar.com\/blog\/paginar-consultas-con-php-mysql-y-ajax\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.jose-aguilar.com\/blog\/paginar-consultas-con-php-mysql-y-ajax\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.jose-aguilar.com\/blog\/wp-content\/uploads\/2014\/10\/Imagen-no-disponible-282x300.png\",\"datePublished\":\"2011-12-27T13:29:19+00:00\",\"dateModified\":\"2012-02-25T14:18:48+00:00\",\"author\":{\"@id\":\"https:\/\/www.jose-aguilar.com\/blog\/#\/schema\/person\/e6d485db1e1140866e95971d17105d11\"},\"breadcrumb\":{\"@id\":\"https:\/\/www.jose-aguilar.com\/blog\/paginar-consultas-con-php-mysql-y-ajax\/#breadcrumb\"},\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.jose-aguilar.com\/blog\/paginar-consultas-con-php-mysql-y-ajax\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/www.jose-aguilar.com\/blog\/paginar-consultas-con-php-mysql-y-ajax\/#primaryimage\",\"url\":\"https:\/\/www.jose-aguilar.com\/blog\/wp-content\/uploads\/2014\/10\/Imagen-no-disponible-282x300.png\",\"contentUrl\":\"https:\/\/www.jose-aguilar.com\/blog\/wp-content\/uploads\/2014\/10\/Imagen-no-disponible-282x300.png\",\"width\":282,\"height\":300},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.jose-aguilar.com\/blog\/paginar-consultas-con-php-mysql-y-ajax\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Portada\",\"item\":\"https:\/\/www.jose-aguilar.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Paginaci\u00f3n de consultas con PHP, MySQL y AJAX\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.jose-aguilar.com\/blog\/#website\",\"url\":\"https:\/\/www.jose-aguilar.com\/blog\/\",\"name\":\"Jose Aguilar Blog\",\"description\":\"Desarrollo Web con PrestaShop, WordPress, PHP, jQuery y Ajax\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.jose-aguilar.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"es\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.jose-aguilar.com\/blog\/#\/schema\/person\/e6d485db1e1140866e95971d17105d11\",\"name\":\"Jose Aguilar\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/www.jose-aguilar.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/abbfef5f1d75260c549d0f2c2842bb697ba1aadff3b2836b39d2590c8a625415?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/abbfef5f1d75260c549d0f2c2842bb697ba1aadff3b2836b39d2590c8a625415?s=96&d=mm&r=g\",\"caption\":\"Jose Aguilar\"},\"description\":\"Director ejecutivo y tecnol\u00f3gico en JA Modules. Experto programador PrestaShop y Experto programador WordPress.\",\"sameAs\":[\"https:\/\/plus.google.com\/114357189801512615537\"],\"url\":\"https:\/\/www.jose-aguilar.com\/blog\/author\/josea902\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Paginaci\u00f3n de consultas con PHP, MySQL y AJAX - Jose Aguilar Blog","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"og_locale":"es_ES","og_type":"article","og_title":"Paginaci\u00f3n de consultas con PHP, MySQL y AJAX - Jose Aguilar Blog","og_description":"Si desemos paginar los resultados de una consulta, podemos hacerlo con PHP y quedar\u00eda excelente, pero sin embargo, si queremos que al momento de pasar de una p\u00e1gina a otra no recarge toda la p\u00e1gina sino solo el contenido que nos interesa. Para ello podemos hacer uso de AJAX. Por ejemplo, nuestra tabla de art\u00edculos [&hellip;]","og_url":"https:\/\/www.jose-aguilar.com\/blog\/paginar-consultas-con-php-mysql-y-ajax\/","og_site_name":"Jose Aguilar Blog","article_publisher":"https:\/\/www.facebook.com\/joseaguilarblog","article_published_time":"2011-12-27T13:29:19+00:00","article_modified_time":"2012-02-25T14:18:48+00:00","og_image":[{"width":282,"height":300,"url":"https:\/\/www.jose-aguilar.com\/blog\/wp-content\/uploads\/2014\/10\/Imagen-no-disponible-282x300.png","type":"image\/png"}],"author":"Jose Aguilar","twitter_card":"summary_large_image","twitter_creator":"@JoseAguilarBlog","twitter_site":"@JoseAguilarBlog","twitter_misc":{"Escrito por":"Jose Aguilar","Tiempo de lectura":"4 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.jose-aguilar.com\/blog\/paginar-consultas-con-php-mysql-y-ajax\/","url":"https:\/\/www.jose-aguilar.com\/blog\/paginar-consultas-con-php-mysql-y-ajax\/","name":"Paginaci\u00f3n de consultas con PHP, MySQL y AJAX - Jose Aguilar Blog","isPartOf":{"@id":"https:\/\/www.jose-aguilar.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.jose-aguilar.com\/blog\/paginar-consultas-con-php-mysql-y-ajax\/#primaryimage"},"image":{"@id":"https:\/\/www.jose-aguilar.com\/blog\/paginar-consultas-con-php-mysql-y-ajax\/#primaryimage"},"thumbnailUrl":"https:\/\/www.jose-aguilar.com\/blog\/wp-content\/uploads\/2014\/10\/Imagen-no-disponible-282x300.png","datePublished":"2011-12-27T13:29:19+00:00","dateModified":"2012-02-25T14:18:48+00:00","author":{"@id":"https:\/\/www.jose-aguilar.com\/blog\/#\/schema\/person\/e6d485db1e1140866e95971d17105d11"},"breadcrumb":{"@id":"https:\/\/www.jose-aguilar.com\/blog\/paginar-consultas-con-php-mysql-y-ajax\/#breadcrumb"},"inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.jose-aguilar.com\/blog\/paginar-consultas-con-php-mysql-y-ajax\/"]}]},{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/www.jose-aguilar.com\/blog\/paginar-consultas-con-php-mysql-y-ajax\/#primaryimage","url":"https:\/\/www.jose-aguilar.com\/blog\/wp-content\/uploads\/2014\/10\/Imagen-no-disponible-282x300.png","contentUrl":"https:\/\/www.jose-aguilar.com\/blog\/wp-content\/uploads\/2014\/10\/Imagen-no-disponible-282x300.png","width":282,"height":300},{"@type":"BreadcrumbList","@id":"https:\/\/www.jose-aguilar.com\/blog\/paginar-consultas-con-php-mysql-y-ajax\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Portada","item":"https:\/\/www.jose-aguilar.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Paginaci\u00f3n de consultas con PHP, MySQL y AJAX"}]},{"@type":"WebSite","@id":"https:\/\/www.jose-aguilar.com\/blog\/#website","url":"https:\/\/www.jose-aguilar.com\/blog\/","name":"Jose Aguilar Blog","description":"Desarrollo Web con PrestaShop, WordPress, PHP, jQuery y Ajax","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.jose-aguilar.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"es"},{"@type":"Person","@id":"https:\/\/www.jose-aguilar.com\/blog\/#\/schema\/person\/e6d485db1e1140866e95971d17105d11","name":"Jose Aguilar","image":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/www.jose-aguilar.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/abbfef5f1d75260c549d0f2c2842bb697ba1aadff3b2836b39d2590c8a625415?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/abbfef5f1d75260c549d0f2c2842bb697ba1aadff3b2836b39d2590c8a625415?s=96&d=mm&r=g","caption":"Jose Aguilar"},"description":"Director ejecutivo y tecnol\u00f3gico en JA Modules. Experto programador PrestaShop y Experto programador WordPress.","sameAs":["https:\/\/plus.google.com\/114357189801512615537"],"url":"https:\/\/www.jose-aguilar.com\/blog\/author\/josea902\/"}]}},"_links":{"self":[{"href":"https:\/\/www.jose-aguilar.com\/blog\/wp-json\/wp\/v2\/posts\/1332","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.jose-aguilar.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.jose-aguilar.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.jose-aguilar.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.jose-aguilar.com\/blog\/wp-json\/wp\/v2\/comments?post=1332"}],"version-history":[{"count":0,"href":"https:\/\/www.jose-aguilar.com\/blog\/wp-json\/wp\/v2\/posts\/1332\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.jose-aguilar.com\/blog\/wp-json\/wp\/v2\/media\/6469"}],"wp:attachment":[{"href":"https:\/\/www.jose-aguilar.com\/blog\/wp-json\/wp\/v2\/media?parent=1332"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.jose-aguilar.com\/blog\/wp-json\/wp\/v2\/categories?post=1332"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.jose-aguilar.com\/blog\/wp-json\/wp\/v2\/tags?post=1332"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}