Comunidad de diseño web y desarrollo en internet online

Como re-Utilizar el mismo Autocomplete de Jquery para diferentes tabla

Citar            
MensajeEscrito el 19 Mar 2017 11:51 pm
Saludos!

Como re-Utilizar el mismo Autocomplete de Jquery para diferentes tablas en un mismo formulario ?


PHP HTML MYSQL JQUERY JS

Tengo un formulario con varios campos:
- Nombre de Cliente
- Nombre de Asociado
- Nombre de Contratista.


Para cada uno de estos, existe una tabla:
- Tabla para Clientes: tclientes (id_cli INT(5)PK, codigo_cli INT(5), nombre_cli VARCHAR(30))
- Tabla para Asociados tasociados (id_aso INT(5)PK, codigo_aso INT(5), nombre_aso VARCHAR(30))
- Tabla para Contratistas: tcontratistas (id_con INT(5)PK, codigo_con INT(5), nombre_con VARCHAR(30))
y la tabla tproyectos que es donde se grabaran los datos.


En el formulario debo seleccionar de una lista el nombre de cada uno y mostrarlo en su cuadro de texto (con Autocomplete de Jquery),


Lo que hice:

Antes del input "Nombre del Cliente", le asigno el valor "cli" a la variable $control,
<?php $control = "cli"; ?> y lo paso al consulta.php, (donde se realizara la consulta).


En formulario.php:

<label for="user_nombrecli">Cliente<br /></label>
<input name="nomclie_pro" type="text" class="input" id="id_cli" onKeyUp="autocomplet()" value="" size="11">
<ul id="lista_id_cli"></ul>


(tambien se podia pasar en ...value="cli" del input)

este valor ("cli") lo llevo a consulta.php, para definir los parametros para la consulta,

switch ($control) {
case 'cli':
$vtabla = 'tclientes';
$vnombre = 'nombre_cli';
break;
case 'aso':
$vtabla = 'tasociados';
$vnombre = 'nombre_aso';
break;
case 'con':
$vtabla = 'tcontratistas';
$vnombre = 'nombre_con';
break;
}




asi, en "Nombre del Cliente", la tabla a escoger sera "tclientes" y el campo sera "nombre_cli"
las variables seran:

$vartabla = "tclientes";
$varnombre = "nombre_cli";

la consulta seria:

$sql = "SELECT * FROM $vartabla WHERE $varnombre LIKE (:keyword) ORDER BY $varnombre ASC LIMIT 0, 10";




El problema es que al colocar algo de codigo en consulta.php, ya no funciona el Autocomplete.

(probe pasar variables con $POST, include y con session) y es lo mismo.


Sabe alguien que es lo que estoy haciendo mal? o dejando de hacer ?'

Gracias.

Por pegs

1 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 22 Mar 2017 12:36 pm
A ver si entiendo: ¿tenes 3 autocomplete en el mismo formulario?

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 22 Mar 2017 08:26 pm

solisarg escribió:

A ver si entiendo: ¿tenes 3 autocomplete en el mismo formulario?

Jorge


Gracias Jotge por tu atencion...

Tengo 3 campos o "cuadros de texto" a llenar mediante una lista. Los datos vienen de 3 tablas diferentes, asi en el cuadro "Nombre del Cliente", el autocomplete muestra la lista de los nombres que estan en la tabla: tclientes, para el cuadro "Nombre del Asociado", debe mostrar la lista de nombres de asociados que estan en la tabla: tasociados, y lo mismo para Nombre de Contratista.

Quiero utilizar 1 asolo autocomplete que haga referencia a los "id" de cada input del formulario.


Gracias.

Por pegs

1 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 22 Mar 2017 08:54 pm
Ok, desconozco como funciona el autocomplete de JQuery, pero por lógica entiendo lo siguiente:

- Cada auticomplete tiene que tener su propia fuente de datos, estamos hablando entonces que tenemos 3 instancias de autocomplete, no 1
- Podemos tener 1 instancia de autocomplete si la documentación del componente indica que se puede cambiar dinámicamente la fuente client-side (no server side)
- En el caso de que fuera posible cambiar dinámicamente la fuente del autocomplete, toda la lista de cada una de las tablas tiene que ser cargada y pasada a un objeto Javascript consumible por el componente

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 22 Mar 2017 09:52 pm
Gracias por tu respuesta Jorge,

para no complicarme optare por usar los 3 autocomplete (1 para cada cuadro de texto). Debe existir alguna forma de hacerlo y no repetir tanto, me refiero a lo del SELECT * FROM $vartabla WHERE $varnombre... que plantee al principio del tema, de modo de ir cambiando $vartabla y $varnombre por el nombre de la tabla y campo respectivo para evitar repetir codigos.

Agradecido por la atencion.

Por pegs

1 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 22 Mar 2017 10:02 pm
Son tres consultas con tres dataset, y tienes que hacerlas todas, puedes hacer un for contra un array de tablas y campos, pero a menos que la tengas clara, te recomiendo que hagas los tres querys, no es mucho lo que ahorras, porque si quieres usar un for cada dataset tiene que ir en un array, etc, Ojo: no confundas server side con client side: se hacen las 3 consultas en la BD y se escriben como Json en el cliente para que las instancias del componente de JQuery las consuma

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.