elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  PHP (Moderador: #!drvy)
| | | |-+  ayuda autocompletar
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: ayuda autocompletar  (Leído 1,579 veces)
General Dmitry Vergadoski


Desconectado Desconectado

Mensajes: 838


General de División.


Ver Perfil
ayuda autocompletar
« en: 25 Septiembre 2015, 15:07 pm »

hola amigos aqui les coloco mi codigo para autocompletar una busqueda:



« Última modificación: 23 Octubre 2015, 21:37 pm por doctorman » En línea

Primero mártir que arrodillado frente una dictadura.
0roch1

Desconectado Desconectado

Mensajes: 123



Ver Perfil
Re: ayuda autocompletar en php
« Respuesta #1 en: 25 Septiembre 2015, 19:57 pm »

El código es tuyo?, es un poco extraño que no puedas implementar esa parte cuando básicamente ya lo tienes.

Además hay algunos errores.

functions.js

Código
  1. html+='<a href="#" onclick="info('+json.data[datos].id+',\''+json.data[datos].nombre+'\')" class="list-group-item">';
  2.  

De dónde tomas id y nombre si en la consulta no están indicados?.

autocompletar.class.php
Código
  1. $query = $this->dbh->prepare("SELECT art_des FROM medi WHERE art_des LIKE :search");
  2.  

Cuando llamas a la función info en la etiqueta a pasas dos parámetros pero solo recibes uno.

functions.js
Código
  1. function info(art_des)
  2. {
  3.  
  4. }
  5.  

Respondiendo a tu duda.
Puedes crear otra clase (Depende de cómo sea la estructura de tus tablas) o crear una función en la clase Autocompletar para consultar el stock.

Sugerencias:
- Crea una clase por cada tabla
- Separa la conexión a la base de datos en otra clase
- Coloca nombres apropiados a tus clases, Autocompletar no es un nombre apropiado para una clase donde tienes información sobre medicamentos.


Coloca el código completo de la parte donde consultas el Stock para poder ayudarte con esa parte.

Saludos.


En línea

General Dmitry Vergadoski


Desconectado Desconectado

Mensajes: 838


General de División.


Ver Perfil
Re: ayuda autocompletar en php
« Respuesta #2 en: 25 Septiembre 2015, 20:45 pm »

El código es tuyo?, es un poco extraño que no puedas implementar esa parte cuando básicamente ya lo tienes.

Además hay algunos errores.

functions.js

Código
  1. html+='<a href="#" onclick="info('+json.data[datos].id+',\''+json.data[datos].nombre+'\')" class="list-group-item">';
  2.  

De dónde tomas id y nombre si en la consulta no están indicados?.

autocompletar.class.php
Código
  1. $query = $this->dbh->prepare("SELECT art_des FROM medi WHERE art_des LIKE :search");
  2.  

Cuando llamas a la función info en la etiqueta a pasas dos parámetros pero solo recibes uno.

functions.js
Código
  1. function info(art_des)
  2. {
  3.  
  4. }
  5.  

Respondiendo a tu duda.
Puedes crear otra clase (Depende de cómo sea la estructura de tus tablas) o crear una función en la clase Autocompletar para consultar el stock.

Sugerencias:
- Crea una clase por cada tabla
- Separa la conexión a la base de datos en otra clase
- Coloca nombres apropiados a tus clases, Autocompletar no es un nombre apropiado para una clase donde tienes información sobre medicamentos.


Coloca el código completo de la parte donde consultas el Stock para poder ayudarte con esa parte.

Saludos.

no me sirve fijate coloco:

Código
  1. <?php
  2. class Autocompletar
  3. {
  4.  
  5. private $dbh;
  6.  
  7. public function __construct()
  8. {
  9. $this->dbh = new PDO("mysql:host=localhost;dbname=medicinas", "root", "123456");
  10. }
  11.  
  12. public function findData($search)
  13. {
  14. $query = $this->dbh->prepare("SELECT art_des FROM medi WHERE art_des LIKE :search");
  15.        $query->execute(array(':search' => '%'.$search.'%'));
  16.        $this->dbh = null;
  17.        if($query->rowCount() > 0)
  18.        {
  19.         echo json_encode(array('res' => 'full', 'data' => $query->fetchAll()));
  20.        }
  21.        else
  22.        {
  23.         echo json_encode(array('res' => 'empty'));
  24.  
  25.                 if($row['stock_act'] > 0 ) {
  26.  
  27. echo 'Disponible';
  28.  
  29. } else {
  30.  
  31. echo 'No hay Disponible';
  32.  
  33. }
  34.  
  35.        }
  36. }
  37. }

y no me funciona
En línea

Primero mártir que arrodillado frente una dictadura.
0roch1

Desconectado Desconectado

Mensajes: 123



Ver Perfil
Re: ayuda autocompletar en php
« Respuesta #3 en: 25 Septiembre 2015, 20:54 pm »

Por lo que entiendo la aplicación debería funcionar así.

Buscas el nombre de un medicamento
Si se encuentran coincidencias con el nombre se despliega una lista con estos.
Al hacer clic sobre un medicamento este deberá mostrar un mensaje cuantos hay en stock

Corrígeme si estoy mal con los pasos.

Podrías colocar exactamente que campos tiene la tabla medi.


En línea

General Dmitry Vergadoski


Desconectado Desconectado

Mensajes: 838


General de División.


Ver Perfil
Re: ayuda autocompletar en php
« Respuesta #4 en: 25 Septiembre 2015, 21:28 pm »

Por lo que entiendo la aplicación debería funcionar así.

Buscas el nombre de un medicamento
Si se encuentran coincidencias con el nombre se despliega una lista con estos.
Al hacer clic sobre un medicamento este deberá mostrar un mensaje cuantos hay en stock

Corrígeme si estoy mal con los pasos.

Podrías colocar exactamente que campos tiene la tabla medi.




exactamente asi como dices es que deberia ser, la tabla donde dice la cantidad de medicinas que hay disponibles se llama "stock_act" la tabla "art_des" es la que tiene el nombre de las medicinas.
En línea

Primero mártir que arrodillado frente una dictadura.
0roch1

Desconectado Desconectado

Mensajes: 123



Ver Perfil
Re: ayuda autocompletar en php
« Respuesta #5 en: 25 Septiembre 2015, 23:56 pm »

Código
  1. if($query->rowCount() > 0)
  2.        {
  3.         echo json_encode(array('res' => 'full', 'data' => $query->fetchAll()));
  4.        }
  5.        else
  6.        {
  7.         echo json_encode(array('res' => 'empty'));
  8.  
  9.                 if($row['stock_act'] > 0 ) {
  10.  
  11. echo 'Disponible';
  12.  
  13. } else {
  14.  
  15. echo 'No hay Disponible';
  16.  
  17. }
  18.  
  19.        }
  20.  
:huh:
Por esa parte del código presiento que no es tu código.

Si el contador es igual a cero o menor que cero (casos contrarios a count > 0) por qué deberías mostrar el stock en este caso?.
Además en ningún momento estás realizando la consulta a la tabla del stock_act

Primero necesitas sabes que es lo que estás haciendo, comprenderlo, corregir el código en las partes que te indiqué y verificar que funcione, si no no tiene caso continuar.

Después deberás crear una función muy parecida a findData la llamaré findStock por ejemplo, en dónde tu consulta deberá ser algo así.

Código
  1. $query = $this->dbh->prepare("SELECT stock FROM stock_act WHERE med_id LIKE :med_id");
  2.  

Todo lo demás es muy parecido.

Intenta y comenta si tienes más dudas.
En línea

General Dmitry Vergadoski


Desconectado Desconectado

Mensajes: 838


General de División.


Ver Perfil
Re: ayuda autocompletar en php
« Respuesta #6 en: 26 Septiembre 2015, 00:32 am »

Código
  1. if($query->rowCount() > 0)
  2.        {
  3.         echo json_encode(array('res' => 'full', 'data' => $query->fetchAll()));
  4.        }
  5.        else
  6.        {
  7.         echo json_encode(array('res' => 'empty'));
  8.  
  9.                 if($row['stock_act'] > 0 ) {
  10.  
  11. echo 'Disponible';
  12.  
  13. } else {
  14.  
  15. echo 'No hay Disponible';
  16.  
  17. }
  18.  
  19.        }
  20.  
:huh:
Por esa parte del código presiento que no es tu código.

Si el contador es igual a cero o menor que cero (casos contrarios a count > 0) por qué deberías mostrar el stock en este caso?.
Además en ningún momento estás realizando la consulta a la tabla del stock_act

Primero necesitas sabes que es lo que estás haciendo, comprenderlo, corregir el código en las partes que te indiqué y verificar que funcione, si no no tiene caso continuar.

Después deberás crear una función muy parecida a findData la llamaré findStock por ejemplo, en dónde tu consulta deberá ser algo así.

Código
  1. $query = $this->dbh->prepare("SELECT stock FROM stock_act WHERE med_id LIKE :med_id");
  2.  

Todo lo demás es muy parecido.

Intenta y comenta si tienes más dudas.
no me sirve ya coloque tu codigo y no hizo nada:

Código
  1. <?php
  2. class Autocompletar
  3. {
  4.  
  5. private $dbh;
  6.  
  7. public function __construct()
  8. {
  9. $this->dbh = new PDO("mysql:host=localhost;dbname=medicinas", "root", "123456");
  10. }
  11.  
  12. public function findData($search)
  13. {
  14. $query = $this->dbh->prepare("SELECT art_des FROM medi WHERE art_des LIKE :search");
  15.        $query->execute(array(':search' => '%'.$search.'%'));
  16.        $this->dbh = null;
  17.        if($query->rowCount() > 0)
  18.        {
  19.         echo json_encode(array('res' => 'full', 'data' => $query->fetchAll()));
  20.        }
  21.        else
  22.        {
  23.         echo json_encode(array('res' => 'empty'));
  24.  
  25.                 if($row['stock_act'] > 0 ) {
  26.  
  27. echo 'Disponible';
  28.  
  29. } else {
  30.  
  31. echo 'No hay Disponible';
  32.  
  33.  
  34.  
  35.        }
  36.  
  37.        }
  38. }
  39. }

el javascript que dice id no existe ninguna tabla llamada id ni nada solo existen las tablas que te dije
En línea

Primero mártir que arrodillado frente una dictadura.
0roch1

Desconectado Desconectado

Mensajes: 123



Ver Perfil
Re: ayuda autocompletar en php
« Respuesta #7 en: 26 Septiembre 2015, 00:45 am »

no me sirve ya coloque tu codigo y no hizo nada:

el javascript que dice id no existe ninguna tabla llamada id ni nada solo existen las tablas que te dije


exactamente asi como dices es que deberia ser, la tabla donde dice la cantidad de medicinas que hay disponibles se llama "stock_act" la tabla "art_des" es la que tiene el nombre de las medicinas.

Claro que no te va a servir solo coloqué un nombre de campo cualquiera (por eso te pedí que pusieras la estructura de tu tabla) debes de colocar los nombres de tus campos y tablas.

Creo que no haz comprendido nada de lo que expliqué.

Al final de corregir y seguir los pasos que te indiqué deberías tener algo así.



Saludos.
En línea

General Dmitry Vergadoski


Desconectado Desconectado

Mensajes: 838


General de División.


Ver Perfil
Re: ayuda autocompletar en php
« Respuesta #8 en: 26 Septiembre 2015, 01:05 am »


Claro que no te va a servir solo coloqué un nombre de campo cualquiera (por eso te pedí que pusieras la estructura de tu tabla) debes de colocar los nombres de tus campos y tablas.

Creo que no haz comprendido nada de lo que expliqué.

Al final de corregir y seguir los pasos que te indiqué deberías tener algo así.



Saludos.

no me sirve ya lo coloque como dices:

Código
  1.    <?php
  2.    class Autocompletar
  3.    {
  4.  
  5.     private $dbh;
  6.  
  7.     public function __construct()
  8.     {
  9.     $this->dbh = new PDO("mysql:host=localhost;dbname=medicinas", "root", "123456");
  10.     }
  11.  
  12.     public function findData($search)
  13.     {
  14.     $query = $this->dbh->prepare("SELECT art_des FROM medi WHERE art_des LIKE :search");
  15. $query = $this->dbh->prepare("SELECT stock_act FROM stock_act WHERE stock_act LIKE :stock_act");
  16.            $query->execute(array(':search' => '%'.$search.'%'));
  17.            $this->dbh = null;
  18.            if($query->rowCount() > 0)
  19.            {
  20.             echo json_encode(array('res' => 'full', 'data' => $query->fetchAll()));
  21.            }
  22.            else
  23.            {
  24.             echo json_encode(array('res' => 'empty'));
  25.  
  26.                     if($row['stock_act'] > 0 ) {
  27.  
  28.    echo 'Disponible';
  29.  
  30.    } else {
  31.  
  32.    echo 'No hay Disponible';
  33.  
  34.  
  35.  
  36.            }
  37.  
  38.            }
  39.     }
  40.    }

« Última modificación: 26 Septiembre 2015, 01:07 am por doctorman » En línea

Primero mártir que arrodillado frente una dictadura.
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
autocompletar en listview
Programación Visual Basic
juanjoxx 2 4,668 Último mensaje 26 Marzo 2008, 11:17 am
por juanjoxx
no me funciona el autocompletar
Windows
mornin 3 2,785 Último mensaje 16 Septiembre 2011, 06:44 am
por Randomize
json o autocompletar un texbox
Desarrollo Web
a.silvaa08 0 949 Último mensaje 17 Abril 2015, 14:28 pm
por a.silvaa08
función autocompletar en chrome
Bugs y Exploits
naibalua 0 1,606 Último mensaje 17 Octubre 2015, 15:24 pm
por naibalua
Autocompletar textboxt, con maximo de 5 sugerencias
.NET (C#, VB.NET, ASP)
_CrisiS_ 0 741 Último mensaje 30 Marzo 2018, 21:30 pm
por _CrisiS_
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines