{"id":2444,"date":"2012-03-30T15:29:33","date_gmt":"2012-03-30T15:29:33","guid":{"rendered":"https:\/\/www.jose-aguilar.com\/blog\/?p=2444"},"modified":"2019-04-09T10:21:54","modified_gmt":"2019-04-09T10:21:54","slug":"paginacion-jquery-ajax-php","status":"publish","type":"post","link":"https:\/\/www.jose-aguilar.com\/blog\/paginacion-jquery-ajax-php\/","title":{"rendered":"Paginaci\u00f3n de resultados con jQuery, Ajax y PHP"},"content":{"rendered":"<p>La <strong>paginaci\u00f3n de resultados<\/strong> se hace necesaria a medida que tenemos grandes cantidades de registros que mostrar.<\/p>\n<p>En este art\u00edculo vamos a explicar una versi\u00f3n mejorada sobre la <strong>paginaci\u00f3n de resultados<\/strong> pero esta vez vamos a utilizar las tecnolog\u00edas: <strong>jQuery, Ajax, PHP y MySQLi<\/strong>.<\/p>\n<p>Cuando tenemos muchos registros y no queremos mostrar una lista de registro muy larga podemos usar <strong>paginaci\u00f3n<\/strong> para mostrar los resultados de la consulta en distintas p\u00e1ginas.<\/p>\n<p>Cuando se presentan en una p\u00e1gina web registros crecientes de una tabla de una base de datos en formato listado, en la mayor\u00eda de los casos acaban siendo demasiados registros como para colocarlos todos en una misma p\u00e1gina. En estas ocasiones se suele <strong>paginar los resultados<\/strong>, quiz\u00e1s cientos, en distintas p\u00e1ginas con conjuntos de registros mucho menos numerosos.<\/p>\n<p>Por ejemplo, podemos presentar los resultados en p\u00e1ginas de 10 elementos o 20, dependiendo de nuestras intenciones y el tipo de datos que se est\u00e9n presentando. Este efecto lo has podido observar repetidas veces en los buscadores.<\/p>\n<p>En este art\u00edculo vamos a ilustrar un ejemplo en el que vamos a tener m\u00e1s de 100 productos de nuestra tienda que estamos leyendo de la base de datos y hemos decidido mostrarlos de 6 en 6.<\/p>\n<p>La <strong>paginaci\u00f3n<\/strong> se puede hacer solo con <strong>PHP<\/strong> pero, en este caso, cada vez que se pulsa en un n\u00famero de p\u00e1gina se recarga la p\u00e1gina. Quiz\u00e1 no te interesa eso por cuestiones de usabilidad y de hacer esperar al usuario para ver m\u00e1s resultados. En esta entrada vamos a ver como aplicarle <strong>jQuery<\/strong> y <strong>Ajax<\/strong> para <strong>paginar resultados sin recargar la p\u00e1gina<\/strong> de nuevo.<\/p>\n<p><em>Esta entrada ha sido actualizada el 16\/07\/2018 aportando toda la experiencia, profesionalidad y compromiso que hemos adquirido en el transcurso del tiempo.<\/em><\/p>\n<p>En el archivo principal o index.php, dentro del &lt;head&gt; debes agregar los scripts y estilos necesarios para hacer funcionar la paginaci\u00f3n:<\/p>\n<div id=\"wpshdo_1\" class=\"wp-synhighlighter-outer\"><div id=\"wpshdt_1\" class=\"wp-synhighlighter-expanded\"><table border=\"0\" width=\"100%\"><tr><td align=\"left\" width=\"80%\"><a name=\"#codesyntax_1\"><\/a><a id=\"wpshat_1\" class=\"wp-synhighlighter-title\" href=\"#codesyntax_1\"  onClick=\"javascript:wpsh_toggleBlock(1)\" title=\"Click to show\/hide code block\">Source code<\/a><\/td><td align=\"right\"><a href=\"#codesyntax_1\" onClick=\"javascript:wpsh_code(1)\" title=\"Show code only\"><img decoding=\"async\" border=\"0\" style=\"border: 0 none\" src=\"https:\/\/www.jose-aguilar.com\/blog\/wp-content\/plugins\/wp-synhighlight\/themes\/default\/images\/code.png\" \/><\/a>&nbsp;<a href=\"#codesyntax_1\" onClick=\"javascript:wpsh_print(1)\" title=\"Print code\"><img decoding=\"async\" border=\"0\" style=\"border: 0 none\" src=\"https:\/\/www.jose-aguilar.com\/blog\/wp-content\/plugins\/wp-synhighlight\/themes\/default\/images\/printer.png\" \/><\/a>&nbsp;<a href=\"https:\/\/www.jose-aguilar.com\/blog\/wp-content\/plugins\/wp-synhighlight\/About.html\" target=\"_blank\" title=\"Show plugin information\"><img decoding=\"async\" border=\"0\" style=\"border: 0 none\" src=\"https:\/\/www.jose-aguilar.com\/blog\/wp-content\/plugins\/wp-synhighlight\/themes\/default\/images\/info.gif\" \/><\/a>&nbsp;<\/td><\/tr><\/table><\/div><div id=\"wpshdi_1\" class=\"wp-synhighlighter-inner\" style=\"display: block;\"><pre class=\"html4strict\" style=\"font-family:monospace;\"><span class=\"sc2\">&lt;<a href=\"http:\/\/december.com\/html\/4\/element\/link.html\"><span class=\"kw2\">link<\/span><\/a> <span class=\"kw3\">rel<\/span><span class=\"sy0\">=<\/span><span class=\"st0\">&quot;stylesheet&quot;<\/span> <span class=\"kw3\">href<\/span><span class=\"sy0\">=<\/span><span class=\"st0\">&quot;css\/styles.css&quot;<\/span>&gt;<\/span>\n<span class=\"sc2\">&lt;<a href=\"http:\/\/december.com\/html\/4\/element\/script.html\"><span class=\"kw2\">script<\/span><\/a> <span class=\"kw3\">src<\/span><span class=\"sy0\">=<\/span><span class=\"st0\">&quot;https:\/\/code.jquery.com\/jquery-3.2.1.js&quot;<\/span>&gt;&lt;<span class=\"sy0\">\/<\/span><a href=\"http:\/\/december.com\/html\/4\/element\/script.html\"><span class=\"kw2\">script<\/span><\/a>&gt;<\/span><\/pre><\/div><\/div>\n<p>Tan solo agregamos estilos propios del ejemplo y la librer\u00eda <strong>jQuery<\/strong>. En el ejemplo en funcionamiento, para el aspecto visual tambi\u00e9n nos apoyamos en la tecnolog\u00eda <strong>Bootstrap<\/strong> para no tener que aplicar muchos estilos propios. De esta forma nos ahorramos mucho trabajo.<\/p>\n<p>En el archivo principal o index.php es importante agregar el siguiente c\u00f3digo:<\/p>\n<div id=\"wpshdo_2\" class=\"wp-synhighlighter-outer\"><div id=\"wpshdt_2\" class=\"wp-synhighlighter-expanded\"><table border=\"0\" width=\"100%\"><tr><td align=\"left\" width=\"80%\"><a name=\"#codesyntax_2\"><\/a><a id=\"wpshat_2\" class=\"wp-synhighlighter-title\" href=\"#codesyntax_2\"  onClick=\"javascript:wpsh_toggleBlock(2)\" title=\"Click to show\/hide code block\">Source code<\/a><\/td><td align=\"right\"><a href=\"#codesyntax_2\" onClick=\"javascript:wpsh_code(2)\" title=\"Show code only\"><img decoding=\"async\" border=\"0\" style=\"border: 0 none\" src=\"https:\/\/www.jose-aguilar.com\/blog\/wp-content\/plugins\/wp-synhighlight\/themes\/default\/images\/code.png\" \/><\/a>&nbsp;<a href=\"#codesyntax_2\" onClick=\"javascript:wpsh_print(2)\" title=\"Print code\"><img decoding=\"async\" border=\"0\" style=\"border: 0 none\" src=\"https:\/\/www.jose-aguilar.com\/blog\/wp-content\/plugins\/wp-synhighlight\/themes\/default\/images\/printer.png\" \/><\/a>&nbsp;<a href=\"https:\/\/www.jose-aguilar.com\/blog\/wp-content\/plugins\/wp-synhighlight\/About.html\" target=\"_blank\" title=\"Show plugin information\"><img decoding=\"async\" border=\"0\" style=\"border: 0 none\" src=\"https:\/\/www.jose-aguilar.com\/blog\/wp-content\/plugins\/wp-synhighlight\/themes\/default\/images\/info.gif\" \/><\/a>&nbsp;<\/td><\/tr><\/table><\/div><div id=\"wpshdi_2\" class=\"wp-synhighlighter-inner\" style=\"display: block;\"><pre class=\"php\" style=\"font-family:monospace;\"><span class=\"kw2\">&lt;?php<\/span> \n<span class=\"kw1\">require<\/span><span class=\"br0\">&#40;<\/span><span class=\"st_h\">'config.php'<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span>\n<span class=\"re0\">$result<\/span> <span class=\"sy0\">=<\/span> <span class=\"re0\">$connexion<\/span><span class=\"sy0\">-&gt;<\/span><span class=\"me1\">query<\/span><span class=\"br0\">&#40;<\/span><span class=\"st_h\">'SELECT COUNT(*) as total_products FROM product WHERE active = 1'<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span>\n<span class=\"re0\">$row<\/span> <span class=\"sy0\">=<\/span> <span class=\"re0\">$result<\/span><span class=\"sy0\">-&gt;<\/span><span class=\"me1\">fetch_assoc<\/span><span class=\"br0\">&#40;<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span>\n<span class=\"re0\">$num_total_rows<\/span> <span class=\"sy0\">=<\/span> <span class=\"re0\">$row<\/span><span class=\"br0\">[<\/span><span class=\"st_h\">'total_products'<\/span><span class=\"br0\">]<\/span><span class=\"sy0\">;<\/span>\n<span class=\"sy1\">?&gt;<\/span><\/pre><\/div><\/div>\n<p>Requerimos del archivo \u00abconfig.php\u00bb que tan solo conecta con la base de datos utilizando la tecnolog\u00eda <strong>MySQLi<\/strong> y dispone del n\u00famero de elementos que queremos para cada p\u00e1gina. Este archivo contiene:<\/p>\n<div id=\"wpshdo_3\" class=\"wp-synhighlighter-outer\"><div id=\"wpshdt_3\" class=\"wp-synhighlighter-expanded\"><table border=\"0\" width=\"100%\"><tr><td align=\"left\" width=\"80%\"><a name=\"#codesyntax_3\"><\/a><a id=\"wpshat_3\" class=\"wp-synhighlighter-title\" href=\"#codesyntax_3\"  onClick=\"javascript:wpsh_toggleBlock(3)\" title=\"Click to show\/hide code block\">Source code<\/a><\/td><td align=\"right\"><a href=\"#codesyntax_3\" onClick=\"javascript:wpsh_code(3)\" title=\"Show code only\"><img decoding=\"async\" border=\"0\" style=\"border: 0 none\" src=\"https:\/\/www.jose-aguilar.com\/blog\/wp-content\/plugins\/wp-synhighlight\/themes\/default\/images\/code.png\" \/><\/a>&nbsp;<a href=\"#codesyntax_3\" onClick=\"javascript:wpsh_print(3)\" title=\"Print code\"><img decoding=\"async\" border=\"0\" style=\"border: 0 none\" src=\"https:\/\/www.jose-aguilar.com\/blog\/wp-content\/plugins\/wp-synhighlight\/themes\/default\/images\/printer.png\" \/><\/a>&nbsp;<a href=\"https:\/\/www.jose-aguilar.com\/blog\/wp-content\/plugins\/wp-synhighlight\/About.html\" target=\"_blank\" title=\"Show plugin information\"><img decoding=\"async\" border=\"0\" style=\"border: 0 none\" src=\"https:\/\/www.jose-aguilar.com\/blog\/wp-content\/plugins\/wp-synhighlight\/themes\/default\/images\/info.gif\" \/><\/a>&nbsp;<\/td><\/tr><\/table><\/div><div id=\"wpshdi_3\" class=\"wp-synhighlighter-inner\" style=\"display: block;\"><pre class=\"php\" style=\"font-family:monospace;\"><span class=\"kw2\">&lt;?php<\/span>\n<a href=\"http:\/\/www.php.net\/define\"><span class=\"kw3\">define<\/span><\/a><span class=\"br0\">&#40;<\/span><span class=\"st_h\">'DB_SERVER'<\/span><span class=\"sy0\">,<\/span> <span class=\"st_h\">'localhost'<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span>\n<a href=\"http:\/\/www.php.net\/define\"><span class=\"kw3\">define<\/span><\/a><span class=\"br0\">&#40;<\/span><span class=\"st_h\">'DB_SERVER_USERNAME'<\/span><span class=\"sy0\">,<\/span> <span class=\"st_h\">'YOUR USERNAME'<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span>\n<a href=\"http:\/\/www.php.net\/define\"><span class=\"kw3\">define<\/span><\/a><span class=\"br0\">&#40;<\/span><span class=\"st_h\">'DB_SERVER_PASSWORD'<\/span><span class=\"sy0\">,<\/span> <span class=\"st_h\">'YOUR PASSWORD'<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span>\n<a href=\"http:\/\/www.php.net\/define\"><span class=\"kw3\">define<\/span><\/a><span class=\"br0\">&#40;<\/span><span class=\"st_h\">'DB_DATABASE'<\/span><span class=\"sy0\">,<\/span> <span class=\"st_h\">'YOUR DATABASE'<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span>\n<a href=\"http:\/\/www.php.net\/define\"><span class=\"kw3\">define<\/span><\/a><span class=\"br0\">&#40;<\/span><span class=\"st_h\">'NUM_ITEMS_BY_PAGE'<\/span><span class=\"sy0\">,<\/span> 6<span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span>\n&nbsp;\n<span class=\"re0\">$connexion<\/span> <span class=\"sy0\">=<\/span> <span class=\"kw2\">new<\/span> mysqli<span class=\"br0\">&#40;<\/span>DB_SERVER<span class=\"sy0\">,<\/span> DB_SERVER_USERNAME<span class=\"sy0\">,<\/span> DB_SERVER_PASSWORD<span class=\"sy0\">,<\/span> DB_DATABASE<span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span>\n<span class=\"sy1\">?&gt;<\/span><\/pre><\/div><\/div>\n<p>Despu\u00e9s tan solo hacemos una consulta a la base de datos para saber el n\u00famero de productos que hay activos que ser\u00e1 un par\u00e1metro importante para el n\u00famero de p\u00e1ginas.<\/p>\n<p>Dentro del &lt;body&gt; debes agregar el c\u00f3digo que recorre los primeros registros y los muestra en pantalla, adem\u00e1s de los n\u00fameros de <strong>paginaci\u00f3n<\/strong>:<\/p>\n<div id=\"wpshdo_4\" class=\"wp-synhighlighter-outer\"><div id=\"wpshdt_4\" class=\"wp-synhighlighter-expanded\"><table border=\"0\" width=\"100%\"><tr><td align=\"left\" width=\"80%\"><a name=\"#codesyntax_4\"><\/a><a id=\"wpshat_4\" class=\"wp-synhighlighter-title\" href=\"#codesyntax_4\"  onClick=\"javascript:wpsh_toggleBlock(4)\" title=\"Click to show\/hide code block\">Source code<\/a><\/td><td align=\"right\"><a href=\"#codesyntax_4\" onClick=\"javascript:wpsh_code(4)\" title=\"Show code only\"><img decoding=\"async\" border=\"0\" style=\"border: 0 none\" src=\"https:\/\/www.jose-aguilar.com\/blog\/wp-content\/plugins\/wp-synhighlight\/themes\/default\/images\/code.png\" \/><\/a>&nbsp;<a href=\"#codesyntax_4\" onClick=\"javascript:wpsh_print(4)\" title=\"Print code\"><img decoding=\"async\" border=\"0\" style=\"border: 0 none\" src=\"https:\/\/www.jose-aguilar.com\/blog\/wp-content\/plugins\/wp-synhighlight\/themes\/default\/images\/printer.png\" \/><\/a>&nbsp;<a href=\"https:\/\/www.jose-aguilar.com\/blog\/wp-content\/plugins\/wp-synhighlight\/About.html\" target=\"_blank\" title=\"Show plugin information\"><img decoding=\"async\" border=\"0\" style=\"border: 0 none\" src=\"https:\/\/www.jose-aguilar.com\/blog\/wp-content\/plugins\/wp-synhighlight\/themes\/default\/images\/info.gif\" \/><\/a>&nbsp;<\/td><\/tr><\/table><\/div><div id=\"wpshdi_4\" class=\"wp-synhighlighter-inner\" style=\"display: block;\"><pre class=\"php\" style=\"font-family:monospace;\"><span class=\"kw2\">&lt;?php<\/span>\n<span class=\"co1\">\/\/Si hay registros<\/span>\n<span class=\"kw1\">if<\/span> <span class=\"br0\">&#40;<\/span><span class=\"re0\">$num_total_rows<\/span> <span class=\"sy0\">&gt;<\/span> 0<span class=\"br0\">&#41;<\/span> <span class=\"br0\">&#123;<\/span>\n    <span class=\"re0\">$num_pages<\/span> <span class=\"sy0\">=<\/span> <a href=\"http:\/\/www.php.net\/ceil\"><span class=\"kw3\">ceil<\/span><\/a><span class=\"br0\">&#40;<\/span><span class=\"re0\">$num_total_rows<\/span> <span class=\"sy0\">\/<\/span> NUM_ITEMS_BY_PAGE<span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span>\n    <span class=\"re0\">$result<\/span> <span class=\"sy0\">=<\/span> <span class=\"re0\">$connexion<\/span><span class=\"sy0\">-&gt;<\/span><span class=\"me1\">query<\/span><span class=\"br0\">&#40;<\/span>\n        <span class=\"st_h\">'SELECT * FROM product p \n        LEFT JOIN product_lang pl ON (pl.id_product = p.id_product AND pl.id_lang = 1) \n        LEFT JOIN image i ON (i.id_product = p.id_product AND cover = 1) \n        WHERE active = 1 \n        ORDER BY date_upd DESC \n        LIMIT 0, '<\/span><span class=\"sy0\">.<\/span>NUM_ITEMS_BY_PAGE\n    <span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span>\n    <span class=\"kw1\">if<\/span> <span class=\"br0\">&#40;<\/span><span class=\"re0\">$result<\/span><span class=\"sy0\">-&gt;<\/span><span class=\"me1\">num_rows<\/span> <span class=\"sy0\">&gt;<\/span> 0<span class=\"br0\">&#41;<\/span> <span class=\"br0\">&#123;<\/span>\n        <span class=\"kw1\">echo<\/span> <span class=\"st_h\">'&lt;ul class=&quot;row items&quot;&gt;'<\/span><span class=\"sy0\">;<\/span>\n        <span class=\"kw1\">while<\/span> <span class=\"br0\">&#40;<\/span><span class=\"re0\">$row<\/span> <span class=\"sy0\">=<\/span> <span class=\"re0\">$result<\/span><span class=\"sy0\">-&gt;<\/span><span class=\"me1\">fetch_assoc<\/span><span class=\"br0\">&#40;<\/span><span class=\"br0\">&#41;<\/span><span class=\"br0\">&#41;<\/span> <span class=\"br0\">&#123;<\/span>\n            <span class=\"kw1\">echo<\/span> <span class=\"st_h\">'&lt;li class=&quot;col-lg-4&quot;&gt;'<\/span><span class=\"sy0\">;<\/span>\n            <span class=\"kw1\">echo<\/span> <span class=\"st_h\">'&lt;div class=&quot;item&quot;&gt;'<\/span><span class=\"sy0\">;<\/span>\n            <span class=\"kw1\">echo<\/span> <span class=\"st_h\">'&lt;h3&gt;'<\/span><span class=\"sy0\">.<\/span><span class=\"re0\">$row<\/span><span class=\"br0\">[<\/span><span class=\"st_h\">'name'<\/span><span class=\"br0\">]<\/span><span class=\"sy0\">.<\/span><span class=\"st_h\">'&lt;\/h3&gt;'<\/span><span class=\"sy0\">;<\/span>\n            <span class=\"sy0\">...<\/span>\n            <span class=\"kw1\">echo<\/span> <span class=\"st_h\">'&lt;\/div&gt;'<\/span><span class=\"sy0\">;<\/span>\n            <span class=\"kw1\">echo<\/span> <span class=\"st_h\">'&lt;\/li&gt;'<\/span><span class=\"sy0\">;<\/span>\n&nbsp;\n        <span class=\"br0\">&#125;<\/span>\n        <span class=\"kw1\">echo<\/span> <span class=\"st_h\">'&lt;\/ul&gt;'<\/span><span class=\"sy0\">;<\/span>\n    <span class=\"br0\">&#125;<\/span>\n&nbsp;\n    <span class=\"kw1\">if<\/span> <span class=\"br0\">&#40;<\/span><span class=\"re0\">$num_pages<\/span> <span class=\"sy0\">&gt;<\/span> 1<span class=\"br0\">&#41;<\/span> <span class=\"br0\">&#123;<\/span>\n        <span class=\"kw1\">echo<\/span> <span class=\"st_h\">'&lt;div class=&quot;row&quot;&gt;'<\/span><span class=\"sy0\">;<\/span>\n        <span class=\"kw1\">echo<\/span> <span class=\"st_h\">'&lt;div class=&quot;col-lg-12&quot;&gt;'<\/span><span class=\"sy0\">;<\/span>\n        <span class=\"kw1\">echo<\/span> <span class=\"st_h\">'&lt;nav aria-label=&quot;Page navigation example&quot;&gt;'<\/span><span class=\"sy0\">;<\/span>\n        <span class=\"kw1\">echo<\/span> <span class=\"st_h\">'&lt;ul class=&quot;pagination justify-content-end&quot;&gt;'<\/span><span class=\"sy0\">;<\/span>\n&nbsp;\n        <span class=\"kw1\">for<\/span> <span class=\"br0\">&#40;<\/span><span class=\"re0\">$i<\/span><span class=\"sy0\">=<\/span><span class=\"nu0\">1<\/span><span class=\"sy0\">;<\/span><span class=\"re0\">$i<\/span><span class=\"sy0\">&lt;=<\/span><span class=\"re0\">$num_pages<\/span><span class=\"sy0\">;<\/span><span class=\"re0\">$i<\/span><span class=\"sy0\">++<\/span><span class=\"br0\">&#41;<\/span> <span class=\"br0\">&#123;<\/span>\n            <span class=\"re0\">$class_active<\/span> <span class=\"sy0\">=<\/span> <span class=\"st_h\">''<\/span><span class=\"sy0\">;<\/span>\n            <span class=\"kw1\">if<\/span> <span class=\"br0\">&#40;<\/span><span class=\"re0\">$i<\/span> <span class=\"sy0\">==<\/span> 1<span class=\"br0\">&#41;<\/span> <span class=\"br0\">&#123;<\/span>\n                <span class=\"re0\">$class_active<\/span> <span class=\"sy0\">=<\/span> <span class=\"st_h\">'active'<\/span><span class=\"sy0\">;<\/span>\n            <span class=\"br0\">&#125;<\/span>\n            <span class=\"kw1\">echo<\/span> <span class=\"st_h\">'&lt;li class=&quot;page-item '<\/span><span class=\"sy0\">.<\/span><span class=\"re0\">$class_active<\/span><span class=\"sy0\">.<\/span><span class=\"st_h\">'&quot;&gt;&lt;a class=&quot;page-link&quot; href=&quot;#&quot; data=&quot;'<\/span><span class=\"sy0\">.<\/span><span class=\"re0\">$i<\/span><span class=\"sy0\">.<\/span><span class=\"st_h\">'&quot;&gt;'<\/span><span class=\"sy0\">.<\/span><span class=\"re0\">$i<\/span><span class=\"sy0\">.<\/span><span class=\"st_h\">'&lt;\/a&gt;&lt;\/li&gt;'<\/span><span class=\"sy0\">;<\/span>\n        <span class=\"br0\">&#125;<\/span>\n&nbsp;\n        <span class=\"kw1\">echo<\/span> <span class=\"st_h\">'&lt;\/ul&gt;'<\/span><span class=\"sy0\">;<\/span>\n        <span class=\"kw1\">echo<\/span> <span class=\"st_h\">'&lt;\/nav&gt;'<\/span><span class=\"sy0\">;<\/span>\n        <span class=\"kw1\">echo<\/span> <span class=\"st_h\">'&lt;\/div&gt;'<\/span><span class=\"sy0\">;<\/span>\n        <span class=\"kw1\">echo<\/span> <span class=\"st_h\">'&lt;\/div&gt;'<\/span><span class=\"sy0\">;<\/span>\n    <span class=\"br0\">&#125;<\/span>\n<span class=\"br0\">&#125;<\/span>\n<span class=\"sy1\">?&gt;<\/span><\/pre><\/div><\/div>\n<p>Finalmente dentro del &lt;head&gt; o justo debajo de la etiqueta de cierre &lt;\/body&gt; puedes agregar el controlador del evento:<\/p>\n<div id=\"wpshdo_5\" class=\"wp-synhighlighter-outer\"><div id=\"wpshdt_5\" class=\"wp-synhighlighter-expanded\"><table border=\"0\" width=\"100%\"><tr><td align=\"left\" width=\"80%\"><a name=\"#codesyntax_5\"><\/a><a id=\"wpshat_5\" class=\"wp-synhighlighter-title\" href=\"#codesyntax_5\"  onClick=\"javascript:wpsh_toggleBlock(5)\" title=\"Click to show\/hide code block\">Source code<\/a><\/td><td align=\"right\"><a href=\"#codesyntax_5\" onClick=\"javascript:wpsh_code(5)\" title=\"Show code only\"><img decoding=\"async\" border=\"0\" style=\"border: 0 none\" src=\"https:\/\/www.jose-aguilar.com\/blog\/wp-content\/plugins\/wp-synhighlight\/themes\/default\/images\/code.png\" \/><\/a>&nbsp;<a href=\"#codesyntax_5\" onClick=\"javascript:wpsh_print(5)\" title=\"Print code\"><img decoding=\"async\" border=\"0\" style=\"border: 0 none\" src=\"https:\/\/www.jose-aguilar.com\/blog\/wp-content\/plugins\/wp-synhighlight\/themes\/default\/images\/printer.png\" \/><\/a>&nbsp;<a href=\"https:\/\/www.jose-aguilar.com\/blog\/wp-content\/plugins\/wp-synhighlight\/About.html\" target=\"_blank\" title=\"Show plugin information\"><img decoding=\"async\" border=\"0\" style=\"border: 0 none\" src=\"https:\/\/www.jose-aguilar.com\/blog\/wp-content\/plugins\/wp-synhighlight\/themes\/default\/images\/info.gif\" \/><\/a>&nbsp;<\/td><\/tr><\/table><\/div><div id=\"wpshdi_5\" class=\"wp-synhighlighter-inner\" style=\"display: block;\"><pre class=\"javascript\" style=\"font-family:monospace;\"><span class=\"sy0\">&lt;<\/span>script type<span class=\"sy0\">=<\/span><span class=\"st0\">&quot;text\/javascript&quot;<\/span><span class=\"sy0\">&gt;<\/span>\n$<span class=\"br0\">&#40;<\/span>document<span class=\"br0\">&#41;<\/span>.<span class=\"me1\">ready<\/span><span class=\"br0\">&#40;<\/span><span class=\"kw2\">function<\/span><span class=\"br0\">&#40;<\/span><span class=\"br0\">&#41;<\/span> <span class=\"br0\">&#123;<\/span>\t\n    $<span class=\"br0\">&#40;<\/span><span class=\"st0\">'.pagination li a'<\/span><span class=\"br0\">&#41;<\/span>.<span class=\"me1\">on<\/span><span class=\"br0\">&#40;<\/span><span class=\"st0\">'click'<\/span><span class=\"sy0\">,<\/span> <span class=\"kw2\">function<\/span><span class=\"br0\">&#40;<\/span><span class=\"br0\">&#41;<\/span><span class=\"br0\">&#123;<\/span>\n        $<span class=\"br0\">&#40;<\/span><span class=\"st0\">'.items'<\/span><span class=\"br0\">&#41;<\/span>.<span class=\"me1\">html<\/span><span class=\"br0\">&#40;<\/span><span class=\"st0\">'&lt;div class=&quot;loading&quot;&gt;&lt;img src=&quot;images\/loading.gif&quot; width=&quot;70px&quot; height=&quot;70px&quot;\/&gt;&lt;br\/&gt;Un momento por favor...&lt;\/div&gt;'<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span>\n&nbsp;\n        <span class=\"kw2\">var<\/span> page <span class=\"sy0\">=<\/span> $<span class=\"br0\">&#40;<\/span><span class=\"kw1\">this<\/span><span class=\"br0\">&#41;<\/span>.<span class=\"me1\">attr<\/span><span class=\"br0\">&#40;<\/span><span class=\"st0\">'data'<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span>\t\t\n        <span class=\"kw2\">var<\/span> dataString <span class=\"sy0\">=<\/span> <span class=\"st0\">'page='<\/span><span class=\"sy0\">+<\/span>page<span class=\"sy0\">;<\/span>\n&nbsp;\n        $.<span class=\"me1\">ajax<\/span><span class=\"br0\">&#40;<\/span><span class=\"br0\">&#123;<\/span>\n            type<span class=\"sy0\">:<\/span> <span class=\"st0\">&quot;GET&quot;<\/span><span class=\"sy0\">,<\/span>\n            url<span class=\"sy0\">:<\/span> <span class=\"st0\">&quot;ajax.php&quot;<\/span><span class=\"sy0\">,<\/span>\n            data<span class=\"sy0\">:<\/span> dataString<span class=\"sy0\">,<\/span>\n            success<span class=\"sy0\">:<\/span> <span class=\"kw2\">function<\/span><span class=\"br0\">&#40;<\/span>data<span class=\"br0\">&#41;<\/span> <span class=\"br0\">&#123;<\/span>\n                $<span class=\"br0\">&#40;<\/span><span class=\"st0\">'.items'<\/span><span class=\"br0\">&#41;<\/span>.<span class=\"me1\">fadeIn<\/span><span class=\"br0\">&#40;<\/span>2000<span class=\"br0\">&#41;<\/span>.<span class=\"me1\">html<\/span><span class=\"br0\">&#40;<\/span>data<span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span>\n                $<span class=\"br0\">&#40;<\/span><span class=\"st0\">'.pagination li'<\/span><span class=\"br0\">&#41;<\/span>.<span class=\"me1\">removeClass<\/span><span class=\"br0\">&#40;<\/span><span class=\"st0\">'active'<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span>\n                $<span class=\"br0\">&#40;<\/span><span class=\"st0\">'.pagination li a[data=&quot;'<\/span><span class=\"sy0\">+<\/span>page<span class=\"sy0\">+<\/span><span class=\"st0\">'&quot;]'<\/span><span class=\"br0\">&#41;<\/span>.<span class=\"me1\">parent<\/span><span class=\"br0\">&#40;<\/span><span class=\"br0\">&#41;<\/span>.<span class=\"me1\">addClass<\/span><span class=\"br0\">&#40;<\/span><span class=\"st0\">'active'<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span>\n            <span class=\"br0\">&#125;<\/span>\n        <span class=\"br0\">&#125;<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span>\n        <span class=\"kw1\">return<\/span> <span class=\"kw2\">false<\/span><span class=\"sy0\">;<\/span>\n    <span class=\"br0\">&#125;<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span>              \n<span class=\"br0\">&#125;<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span>    \n<span class=\"sy0\">&lt;\/<\/span>script<span class=\"sy0\">&gt;<\/span><\/pre><\/div><\/div>\n<p>El c\u00f3digo anterior lo que hace es esperar a que alg\u00fan n\u00famero del bloque de <strong>paginaci\u00f3n<\/strong> sea clikeado para ejecutar el proceso de <strong>paginaci\u00f3n<\/strong>.<\/p>\n<p>Por cada enlace de la <strong>paginaci\u00f3n<\/strong> que se haga click, rellenamos el contenedor de elementos con una imagen que aplica el efecto de cargando&#8230; (esto se puede quitar para acelerar el proceso de la\u00a0<strong>paginaci\u00f3n<\/strong>), recogemos el par\u00e1metro que nos indica el n\u00famero de p\u00e1gina que el usuario quiere ver y, luego, mediante la t\u00e9cnica <strong>Ajax<\/strong> hacemos una llamada as\u00edncrona al archivo \u00abajax.php\u00bb pas\u00e1ndole el n\u00famero de p\u00e1gina usando el m\u00e9todo GET.<\/p>\n<p>Mediante el success del ajax depositamos la informaci\u00f3n que nos env\u00eda el archivo \u00abajax.php\u00bb en el contenedor deseado y activamos el n\u00famero de p\u00e1gina en el que se ha hecho click.<\/p>\n<p>El archivo \u00abajax.php\u00bb se encarga de retornar los productos que hay en la p\u00e1gina escogida. Puedes ver el c\u00f3digo a continuaci\u00f3n:<\/p>\n<div id=\"wpshdo_6\" class=\"wp-synhighlighter-outer\"><div id=\"wpshdt_6\" class=\"wp-synhighlighter-expanded\"><table border=\"0\" width=\"100%\"><tr><td align=\"left\" width=\"80%\"><a name=\"#codesyntax_6\"><\/a><a id=\"wpshat_6\" class=\"wp-synhighlighter-title\" href=\"#codesyntax_6\"  onClick=\"javascript:wpsh_toggleBlock(6)\" title=\"Click to show\/hide code block\">Source code<\/a><\/td><td align=\"right\"><a href=\"#codesyntax_6\" onClick=\"javascript:wpsh_code(6)\" title=\"Show code only\"><img decoding=\"async\" border=\"0\" style=\"border: 0 none\" src=\"https:\/\/www.jose-aguilar.com\/blog\/wp-content\/plugins\/wp-synhighlight\/themes\/default\/images\/code.png\" \/><\/a>&nbsp;<a href=\"#codesyntax_6\" onClick=\"javascript:wpsh_print(6)\" title=\"Print code\"><img decoding=\"async\" border=\"0\" style=\"border: 0 none\" src=\"https:\/\/www.jose-aguilar.com\/blog\/wp-content\/plugins\/wp-synhighlight\/themes\/default\/images\/printer.png\" \/><\/a>&nbsp;<a href=\"https:\/\/www.jose-aguilar.com\/blog\/wp-content\/plugins\/wp-synhighlight\/About.html\" target=\"_blank\" title=\"Show plugin information\"><img decoding=\"async\" border=\"0\" style=\"border: 0 none\" src=\"https:\/\/www.jose-aguilar.com\/blog\/wp-content\/plugins\/wp-synhighlight\/themes\/default\/images\/info.gif\" \/><\/a>&nbsp;<\/td><\/tr><\/table><\/div><div id=\"wpshdi_6\" class=\"wp-synhighlighter-inner\" style=\"display: block;\"><pre class=\"php\" style=\"font-family:monospace;\"><span class=\"kw2\">&lt;?php<\/span>\n<span class=\"kw1\">require_once<\/span><span class=\"br0\">&#40;<\/span><span class=\"st_h\">'config.php'<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span>\n&nbsp;\n<span class=\"re0\">$html<\/span> <span class=\"sy0\">=<\/span> <span class=\"st_h\">''<\/span><span class=\"sy0\">;<\/span>\n<span class=\"re0\">$page<\/span> <span class=\"sy0\">=<\/span> <span class=\"re0\">$_GET<\/span><span class=\"br0\">[<\/span><span class=\"st_h\">'page'<\/span><span class=\"br0\">]<\/span><span class=\"sy0\">;<\/span>\n<span class=\"re0\">$rowsPerPage<\/span> <span class=\"sy0\">=<\/span> NUM_ITEMS_BY_PAGE<span class=\"sy0\">;<\/span>\n<span class=\"re0\">$offset<\/span> <span class=\"sy0\">=<\/span> <span class=\"br0\">&#40;<\/span><span class=\"re0\">$page<\/span> <span class=\"sy0\">-<\/span> 1<span class=\"br0\">&#41;<\/span> <span class=\"sy0\">*<\/span> <span class=\"re0\">$rowsPerPage<\/span><span class=\"sy0\">;<\/span>\n<a href=\"http:\/\/www.php.net\/sleep\"><span class=\"kw3\">sleep<\/span><\/a><span class=\"br0\">&#40;<\/span>1<span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span>\n&nbsp;\n<span class=\"re0\">$result<\/span> <span class=\"sy0\">=<\/span> <span class=\"re0\">$connexion<\/span><span class=\"sy0\">-&gt;<\/span><span class=\"me1\">query<\/span><span class=\"br0\">&#40;<\/span>\n    <span class=\"st_h\">'SELECT * FROM product p \n    LEFT JOIN product_lang pl ON (pl.id_product = p.id_product AND pl.id_lang = 1) \n    LEFT JOIN `image` i ON (i.id_product = p.id_product AND cover = 1) \n    WHERE active = 1 \n    ORDER BY date_upd DESC LIMIT '<\/span><span class=\"sy0\">.<\/span><span class=\"re0\">$offset<\/span><span class=\"sy0\">.<\/span><span class=\"st_h\">', '<\/span><span class=\"sy0\">.<\/span><span class=\"re0\">$rowsPerPage<\/span>\n<span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span>\n<span class=\"kw1\">if<\/span> <span class=\"br0\">&#40;<\/span><span class=\"re0\">$result<\/span><span class=\"sy0\">-&gt;<\/span><span class=\"me1\">num_rows<\/span> <span class=\"sy0\">&gt;<\/span> 0<span class=\"br0\">&#41;<\/span> <span class=\"br0\">&#123;<\/span>\n    <span class=\"kw1\">while<\/span> <span class=\"br0\">&#40;<\/span><span class=\"re0\">$row<\/span> <span class=\"sy0\">=<\/span> <span class=\"re0\">$result<\/span><span class=\"sy0\">-&gt;<\/span><span class=\"me1\">fetch_assoc<\/span><span class=\"br0\">&#40;<\/span><span class=\"br0\">&#41;<\/span><span class=\"br0\">&#41;<\/span> <span class=\"br0\">&#123;<\/span>\n        <span class=\"re0\">$html<\/span> <span class=\"sy0\">.=<\/span> <span class=\"st_h\">'&lt;li class=&quot;col-lg-4&quot;&gt;'<\/span><span class=\"sy0\">;<\/span>\n        <span class=\"re0\">$html<\/span> <span class=\"sy0\">.=<\/span> <span class=\"st_h\">'&lt;div class=&quot;item&quot;&gt;'<\/span><span class=\"sy0\">;<\/span>\n        <span class=\"re0\">$html<\/span> <span class=\"sy0\">.=<\/span> <span class=\"st_h\">'&lt;h3&gt;'<\/span><span class=\"sy0\">.<\/span><span class=\"re0\">$row<\/span><span class=\"br0\">[<\/span><span class=\"st_h\">'name'<\/span><span class=\"br0\">]<\/span><span class=\"sy0\">.<\/span><span class=\"st_h\">'&lt;\/h3&gt;'<\/span><span class=\"sy0\">;<\/span>\n        <span class=\"sy0\">...<\/span>\n        <span class=\"re0\">$html<\/span> <span class=\"sy0\">.=<\/span> <span class=\"st_h\">'&lt;\/div&gt;'<\/span><span class=\"sy0\">;<\/span>\n        <span class=\"re0\">$html<\/span> <span class=\"sy0\">.=<\/span> <span class=\"st_h\">'&lt;\/li&gt;'<\/span><span class=\"sy0\">;<\/span>\n    <span class=\"br0\">&#125;<\/span>\n<span class=\"br0\">&#125;<\/span>\n&nbsp;\n<span class=\"kw1\">echo<\/span> <span class=\"re0\">$html<\/span><span class=\"sy0\">;<\/span>\n<span class=\"sy1\">?&gt;<\/span><\/pre><\/div><\/div>\n<p>Qu\u00e9 hace este c\u00f3digo?<\/p>\n<ul>\n<li>Conectamos con la base de datos.<\/li>\n<li>Recepcionamos la p\u00e1gina que ha elegido el usuario.<\/li>\n<li>Calculamos el n\u00famero por el cual se debe empezar a retornar registros.<\/li>\n<li>La funci\u00f3n sleep() la usamos para retrasar el proceso y ver el efecto de cargando. Se puede quitar si no interesa.<\/li>\n<li>Hacemos la consulta paginada usando LIMIT en la consulta.<\/li>\n<li>Recorremos y rellenamos nuestra variable $html con la informaci\u00f3n de los registros paginados.<\/li>\n<li>Lo retornamos con echo a la llamada Ajax.<\/li>\n<\/ul>\n<p class=\"text-center\"><a class=\"btn btn-secondary\" href=\"https:\/\/www.jose-aguilar.com\/scripts\/jquery\/pagination-me\/\" target=\"_blank\" rel=\"noopener noreferrer\"><i class=\"fa fa-eye\"><\/i> Ver demo<\/a> <a class=\"btn btn-primary\" href=\"https:\/\/www.jose-aguilar.com\/scripts\/jquery\/pagination-me\/pagination-me.zip\"><i class=\"fa fa-download\"><\/i> Descargar<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Ejemplo sencillo y f\u00e1cil de entender para la paginaci\u00f3n de resultados utilizando las tecnolog\u00edas jQuery, Ajax y PHP.<\/p>\n","protected":false},"author":1,"featured_media":7263,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[31,149,5,3],"tags":[74,34,112],"class_list":["post-2444","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-ajax","category-destacados","category-jquery","category-php","tag-contenedores","tag-paginacion","tag-registros"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v25.6 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Paginaci\u00f3n de resultados con jQuery, Ajax y PHP - Jose Aguilar Blog<\/title>\n<meta name=\"description\" content=\"Ejemplo sencillo y f\u00e1cil de entender para la paginaci\u00f3n de resultados utilizando las tecnolog\u00edas jQuery, Ajax y PHP.\" \/>\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 resultados con jQuery, Ajax y PHP - Jose Aguilar Blog\" \/>\n<meta property=\"og:description\" content=\"Ejemplo sencillo y f\u00e1cil de entender para la paginaci\u00f3n de resultados utilizando las tecnolog\u00edas jQuery, Ajax y PHP.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.jose-aguilar.com\/blog\/paginacion-jquery-ajax-php\/\" \/>\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=\"2012-03-30T15:29:33+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2019-04-09T10:21:54+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.jose-aguilar.com\/blog\/wp-content\/uploads\/2012\/03\/paginacion-jquery-ajax-php.png\" \/>\n\t<meta property=\"og:image:width\" content=\"250\" \/>\n\t<meta property=\"og:image:height\" content=\"250\" \/>\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=\"7 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\/paginacion-jquery-ajax-php\/\",\"url\":\"https:\/\/www.jose-aguilar.com\/blog\/paginacion-jquery-ajax-php\/\",\"name\":\"Paginaci\u00f3n de resultados con jQuery, Ajax y PHP - Jose Aguilar Blog\",\"isPartOf\":{\"@id\":\"https:\/\/www.jose-aguilar.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.jose-aguilar.com\/blog\/paginacion-jquery-ajax-php\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.jose-aguilar.com\/blog\/paginacion-jquery-ajax-php\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.jose-aguilar.com\/blog\/wp-content\/uploads\/2012\/03\/paginacion-jquery-ajax-php.png\",\"datePublished\":\"2012-03-30T15:29:33+00:00\",\"dateModified\":\"2019-04-09T10:21:54+00:00\",\"author\":{\"@id\":\"https:\/\/www.jose-aguilar.com\/blog\/#\/schema\/person\/e6d485db1e1140866e95971d17105d11\"},\"description\":\"Ejemplo sencillo y f\u00e1cil de entender para la paginaci\u00f3n de resultados utilizando las tecnolog\u00edas jQuery, Ajax y PHP.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.jose-aguilar.com\/blog\/paginacion-jquery-ajax-php\/#breadcrumb\"},\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.jose-aguilar.com\/blog\/paginacion-jquery-ajax-php\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/www.jose-aguilar.com\/blog\/paginacion-jquery-ajax-php\/#primaryimage\",\"url\":\"https:\/\/www.jose-aguilar.com\/blog\/wp-content\/uploads\/2012\/03\/paginacion-jquery-ajax-php.png\",\"contentUrl\":\"https:\/\/www.jose-aguilar.com\/blog\/wp-content\/uploads\/2012\/03\/paginacion-jquery-ajax-php.png\",\"width\":250,\"height\":250},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.jose-aguilar.com\/blog\/paginacion-jquery-ajax-php\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Portada\",\"item\":\"https:\/\/www.jose-aguilar.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Paginaci\u00f3n de resultados con jQuery, Ajax y PHP\"}]},{\"@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 resultados con jQuery, Ajax y PHP - Jose Aguilar Blog","description":"Ejemplo sencillo y f\u00e1cil de entender para la paginaci\u00f3n de resultados utilizando las tecnolog\u00edas jQuery, Ajax y PHP.","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 resultados con jQuery, Ajax y PHP - Jose Aguilar Blog","og_description":"Ejemplo sencillo y f\u00e1cil de entender para la paginaci\u00f3n de resultados utilizando las tecnolog\u00edas jQuery, Ajax y PHP.","og_url":"https:\/\/www.jose-aguilar.com\/blog\/paginacion-jquery-ajax-php\/","og_site_name":"Jose Aguilar Blog","article_publisher":"https:\/\/www.facebook.com\/joseaguilarblog","article_published_time":"2012-03-30T15:29:33+00:00","article_modified_time":"2019-04-09T10:21:54+00:00","og_image":[{"width":250,"height":250,"url":"https:\/\/www.jose-aguilar.com\/blog\/wp-content\/uploads\/2012\/03\/paginacion-jquery-ajax-php.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":"7 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.jose-aguilar.com\/blog\/paginacion-jquery-ajax-php\/","url":"https:\/\/www.jose-aguilar.com\/blog\/paginacion-jquery-ajax-php\/","name":"Paginaci\u00f3n de resultados con jQuery, Ajax y PHP - Jose Aguilar Blog","isPartOf":{"@id":"https:\/\/www.jose-aguilar.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.jose-aguilar.com\/blog\/paginacion-jquery-ajax-php\/#primaryimage"},"image":{"@id":"https:\/\/www.jose-aguilar.com\/blog\/paginacion-jquery-ajax-php\/#primaryimage"},"thumbnailUrl":"https:\/\/www.jose-aguilar.com\/blog\/wp-content\/uploads\/2012\/03\/paginacion-jquery-ajax-php.png","datePublished":"2012-03-30T15:29:33+00:00","dateModified":"2019-04-09T10:21:54+00:00","author":{"@id":"https:\/\/www.jose-aguilar.com\/blog\/#\/schema\/person\/e6d485db1e1140866e95971d17105d11"},"description":"Ejemplo sencillo y f\u00e1cil de entender para la paginaci\u00f3n de resultados utilizando las tecnolog\u00edas jQuery, Ajax y PHP.","breadcrumb":{"@id":"https:\/\/www.jose-aguilar.com\/blog\/paginacion-jquery-ajax-php\/#breadcrumb"},"inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.jose-aguilar.com\/blog\/paginacion-jquery-ajax-php\/"]}]},{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/www.jose-aguilar.com\/blog\/paginacion-jquery-ajax-php\/#primaryimage","url":"https:\/\/www.jose-aguilar.com\/blog\/wp-content\/uploads\/2012\/03\/paginacion-jquery-ajax-php.png","contentUrl":"https:\/\/www.jose-aguilar.com\/blog\/wp-content\/uploads\/2012\/03\/paginacion-jquery-ajax-php.png","width":250,"height":250},{"@type":"BreadcrumbList","@id":"https:\/\/www.jose-aguilar.com\/blog\/paginacion-jquery-ajax-php\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Portada","item":"https:\/\/www.jose-aguilar.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Paginaci\u00f3n de resultados con jQuery, Ajax y PHP"}]},{"@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\/2444","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=2444"}],"version-history":[{"count":0,"href":"https:\/\/www.jose-aguilar.com\/blog\/wp-json\/wp\/v2\/posts\/2444\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.jose-aguilar.com\/blog\/wp-json\/wp\/v2\/media\/7263"}],"wp:attachment":[{"href":"https:\/\/www.jose-aguilar.com\/blog\/wp-json\/wp\/v2\/media?parent=2444"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.jose-aguilar.com\/blog\/wp-json\/wp\/v2\/categories?post=2444"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.jose-aguilar.com\/blog\/wp-json\/wp\/v2\/tags?post=2444"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}