{"id":7809,"date":"2015-04-08T16:25:22","date_gmt":"2015-04-08T14:25:22","guid":{"rendered":"http:\/\/www.palentino.es\/blog\/?p=7809"},"modified":"2015-04-08T16:28:46","modified_gmt":"2015-04-08T14:28:46","slug":"plantilla-para-crear-un-area-de-texto-con-la-opcion-de-autocompletar-consultando-a-una-base-de-datos-php-wordpress","status":"publish","type":"post","link":"https:\/\/www.palentino.es\/blog\/plantilla-para-crear-un-area-de-texto-con-la-opcion-de-autocompletar-consultando-a-una-base-de-datos-php-wordpress\/","title":{"rendered":"Plantilla para crear un \u00e1rea de texto con la opci\u00f3n de autocompletar consultando a una base de datos. #PHP #wordpress"},"content":{"rendered":"<p>En esta entrada os dejo el c\u00f3digo necesario para emplear la opci\u00f3n de consulta en tiempo real sobre una base de datos mysql, usando php y JQuery con la llamada.<\/p>\n<p>La idea es la siguiente:<\/p>\n<p>Cuando insertemos texto, el inputbox nos mostrar\u00e1 las posibles sugerencias encontradas en la base de datos en tiempo real y sin necesidad de refrescar la p\u00e1gina a modo de sugerencias. Parecido\u00a0al <strong>buscador de google<\/strong>. Podemos ver un \u00a0ejemplo en esta p\u00e1gina: <a href=\"http:\/\/www.palentino.es\/blog\/buscador-de-consejos-y-trucos-para-excel\/\" target=\"_blank\">ejemplo<\/a><\/p>\n<p><!--more--><\/p>\n<p>Para ello es precio descargarse los ficheros que adjunto. Esta desarrollado para trabajar con <strong>WordPress<\/strong> a modo de p\u00e1gina para un <strong>template<\/strong>.<\/p>\n<p>Explicaci\u00f3n:<\/p>\n<p>La pagina a medida.php contiene el formulario y el input para realizar la llamada, as\u00ed como los scripts necesarios a pie de p\u00e1gina.<\/p>\n<pre class=\"lang:php decode:true\">&lt;?php\r\n\/* Explicaci\u00f3n de una pagina para wordpress con opcion de busqueda con autocompletado.\r\nwww.palentino.es\r\nTemplate Name: consultarJquery\r\n*\/\r\n?&gt;\r\n\r\n&lt;?php\r\nget_header();\r\n?&gt;\r\n\r\n&lt;div class=\"container\"&gt;\r\n&lt;div class=\"row\"&gt;\r\n&lt;?php\r\nif ( have_posts() ) while ( have_posts() )\r\n{\r\n\t?&gt;\r\n\t &lt;div class=\"post_container\"&gt;\r\n\t     &lt;h1&gt;Ejemplo de consulta&lt;\/h1&gt;\r\n\t     &lt;form action=\"mi-pagina-php\" method=\"post\"&gt;\r\n\t     Por favor, introduce la consulta o palabras clave&lt;br\/&gt; Ejemplo: Filtrar datos &lt;\/br&gt;\r\n\t  \t\t&lt;input type=\"text\" name=\"truco\" id=\"truco\" value=\"\" \/&gt; &lt;br\/&gt;\r\n\t  \t\t&lt;input type=\"submit\" value=\"|| Realizar una consulta ||\" \/&gt;\r\n\t  \t  &lt;\/form&gt;\r\n\t     &lt;\/br&gt;\r\n \r\n  &lt;?php \r\n\t\tthe_post();\r\n\t\tthe_content();\r\n}\r\n?&gt;\r\n \t&lt;\/div&gt;\r\n    &lt;div class=\"widget-container\" style=\"\"&gt;\r\n\t      &lt;?php get_sidebar(); ?&gt;\r\n    &lt;\/div&gt;\r\n&lt;\/div&gt;\r\n\r\n&lt;\/div&gt;\r\n\t&lt;?php comments_template(); ?&gt;\r\n\t&lt;?php \/\/Muestra el pie\r\n\t\tget_footer();\r\n\t?&gt;\r\n\r\n?&gt;\r\n&lt;!-- Necesario para que funcione - ojo necesita se llamado al final --&gt;\r\n&lt;script type=\"text\/javascript\" src=\"autocompletar\/jquery.js\"&gt;&lt;\/script&gt;\r\n&lt;script type=\"text\/javascript\" src=\"autoocompletar\/jquery.autocomplete.js\"&gt;&lt;\/script&gt;\r\n&lt;link rel=\"stylesheet\" type=\"text\/css\" href=\"autocompletar\/jquery.autocomplete.css\" \/&gt;\r\n&lt;script&gt;\r\n $(document).ready(function(){\r\n  $(\"#truco\").autocomplete(\"autocompletar\/autocomplete.php\", {\r\n        selectFirst: false\r\n  });\r\n });\r\n&lt;\/script&gt;\r\n<\/pre>\n<p>La carpeta autocompletar contiene la css y los js de jquery.<\/p>\n<p>Interesante es fijarse en la p\u00e1gina que devuelve las consultas llamada<strong> autocomplete.php<\/strong><\/p>\n<p>Recuerda adaptar la consulta SQL de llamada y el campo que deseas retornar.<\/p>\n<p>Para finalizar, cuidado con las rutas, si tienes muchos problemas, c\u00e1mbialas a absolutas.<\/p>\n<pre class=\"lang:php decode:true\">&lt;?php\r\n\t$q=$_GET['q'];\r\n\t$my_data=mysql_real_escape_string($q);\r\n    $mysqli=mysqli_connect('mi-base-de-datos-mysql-direccion','usuario','password','base') or die(\"Error en la base\");\r\n\t\/\/ Necesario para evitar mostrar caracteres extra\u00f1os\r\n\tmysqli_set_charset ($mysqli, \"utf8\");\r\n\t$sql=\"SELECT texto FROM mitabla WHERE texto LIKE '%$my_data%' ORDER BY texto\";\r\n\t$result = mysqli_query($mysqli,$sql) or die(mysqli_error());\r\n\tif($result)\r\n\t{\r\n\t\twhile($row=mysqli_fetch_array($result))\r\n\t\t{\r\n\t\t\techo $row['texto'].\"\\n\";\r\n\t\t}\r\n\t}\r\n?&gt;<\/pre>\n<p>&nbsp;<\/p>\n<p><a href=\"http:\/\/www.palentino.es\/codigo-fuente\/Autocompletar.rar\" target=\"_blank\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-2896\" src=\"http:\/\/www.palentino.es\/blog\/wp-content\/uploads\/2012\/12\/descargar-twitter.png\" alt=\"descargar-twitter\" width=\"180\" height=\"134\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>En esta entrada os dejo el c\u00f3digo necesario para emplear la opci\u00f3n de consulta en tiempo real sobre una base de datos mysql, usando php y JQuery con la llamada. La idea es la siguiente: Cuando insertemos texto, el inputbox nos mostrar\u00e1 las posibles sugerencias encontradas en la base de datos en tiempo real y sin necesidad de refrescar la p\u00e1gina a modo de sugerencias. Parecido\u00a0al buscador de google. Podemos ver un \u00a0ejemplo en esta p\u00e1gina: ejemplo<\/p>\n","protected":false},"author":1,"featured_media":4681,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[620,46,5],"tags":[670,667],"class_list":["post-7809","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-mysql","category-php","category-programacion","tag-jquery","tag-php"],"_links":{"self":[{"href":"https:\/\/www.palentino.es\/blog\/wp-json\/wp\/v2\/posts\/7809","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.palentino.es\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.palentino.es\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.palentino.es\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.palentino.es\/blog\/wp-json\/wp\/v2\/comments?post=7809"}],"version-history":[{"count":4,"href":"https:\/\/www.palentino.es\/blog\/wp-json\/wp\/v2\/posts\/7809\/revisions"}],"predecessor-version":[{"id":7813,"href":"https:\/\/www.palentino.es\/blog\/wp-json\/wp\/v2\/posts\/7809\/revisions\/7813"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.palentino.es\/blog\/wp-json\/wp\/v2\/media\/4681"}],"wp:attachment":[{"href":"https:\/\/www.palentino.es\/blog\/wp-json\/wp\/v2\/media?parent=7809"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.palentino.es\/blog\/wp-json\/wp\/v2\/categories?post=7809"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.palentino.es\/blog\/wp-json\/wp\/v2\/tags?post=7809"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}