comment
IRC Chat
play_arrow
Este sitio utiliza cookies propias y de terceros. Si continúa navegando consideramos que acepta el uso de cookies. OK Más Información.

[SOLUCIONADO] Llenar lista dependiendo de otra lista

  • 8 Respuestas
  • 2983 Vistas

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado Only

  • *
  • Underc0der
  • Mensajes: 219
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
    • Email
  • Skype: cesartorres.1688
« en: Octubre 02, 2013, 02:43:45 pm »
Hola a todos les cuento que en un formulario que estoy haciendo, quiero poner campos como

Nombre
Correo
Telefono
Estado
Ciudad
Comentario

Lo que quiero hacer es por ejemplo : en la lista de Estados, al momento que el usuario seleccione el estado donde vive, se llene la lista de Ciudad, con las ciudades del estado que selecciono.

Espero que me puedan dar una idea de como hacerlo ya que no puedo

Gracias a todos
« Última modificación: Octubre 25, 2013, 11:51:02 pm por Expermicid »

Desconectado TrollMine

  • *
  • Underc0der
  • Mensajes: 47
  • Actividad:
    0%
  • Reputación 0
  • GEEK POWER
    • Ver Perfil
    • Twitter
  • Skype: trollmine99
« Respuesta #1 en: Octubre 02, 2013, 03:22:27 pm »
¿Pero utilizando que? ¿Bases de datos? Si no nos das mas detalles no podemos ayudarte
Skype: trollmine99

Desconectado Only

  • *
  • Underc0der
  • Mensajes: 219
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
    • Email
  • Skype: cesartorres.1688
« Respuesta #2 en: Octubre 02, 2013, 03:30:27 pm »
no bro no estoy utilizando bases de datos, lo estoy haciendo con option value

Desconectado TrollMine

  • *
  • Underc0der
  • Mensajes: 47
  • Actividad:
    0%
  • Reputación 0
  • GEEK POWER
    • Ver Perfil
    • Twitter
  • Skype: trollmine99
« Respuesta #3 en: Octubre 02, 2013, 04:18:26 pm »
Lo siento xD yo de html se poco hasta nada
Skype: trollmine99

Desconectado alexander1712

  • *
  • Underc0der
  • Mensajes: 850
  • Actividad:
    0%
  • Reputación -2
    • Ver Perfil
    • El blog del programador
    • Email
« Respuesta #4 en: Octubre 02, 2013, 04:34:16 pm »
TrollMine tiene razón, no se te entiende muy bien.

Tu tienes una lista con un tag select imagino (<select name...><option>...</option><option>...</option></select>) y quieres que al seleccionar una opción de ese listado se cargue otro listado diferente con nuevas opciones dependiendo de la opción seleccionada en el primer listado.

la pregunta de trollmine es donde tienes los datos que usarás para completar el segundo listado?

las opciones donde están guardadas?

si quieres obtener las opciones desde php puedes usar AJAX para cargar con jquery el nuevo listado mandando la opción que ya seleccionaste a un archivo php (que podría sacar el nuevo listado de una tabla de "estados" y el primer listado sacarlo de una tabla de "paises") no se si me explico.

Aunque si solo quieres manejar con paises y sus estados únicamente y no fue solo un ejemplo de lo que querías hacer, tengo entendido que lo puedes hacer con una de las API de google y usar js para cargar los paises desde la API de google que seguro que estará más completa que una base de datos de paises y estados de tu autoría.

En todo caso, siempre usarás javascript (preferiblemente con el framework jquery o alguno del estilo) para verificar que opción seleccionó y cargar las opciones de otro listado.
Usando ajax como mensioné antes puedes obtener el nuevo listado desde un php, y que obviamente lo puede sacara de una base de datos.

no se si me explico, es complicado explicar cosas a alguien que recién empieza traté de ser lo más simple posible, pero aveces al querer hacer las cosas simples pueden llegar a quedar confusas.

Un saludo!

Desconectado s00rk

  • *
  • Underc0der
  • Mensajes: 68
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
« Respuesta #5 en: Octubre 04, 2013, 11:49:58 am »
HTML:
Código: Text
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. </head>
  5. <body>
  6.  
  7.     Estado:
  8.     <select id="estados">
  9.     </select>
  10.     <br />
  11.     Ciudad:
  12.     <select id="ciudades">
  13.     </select>
  14.  
  15. </body>
  16. </html>
  17.  

Javascript (usando jQuery):
Código: Javascript
  1. $(document).on('ready', function (){
  2.     $.get('/estados.php', function (data){
  3.         data = $.parseJSON(data);
  4.         $.each(data, function (i, d){
  5.             $('#estados').append('<option value="' + d.id + '">' + d.nombre + '</option>');
  6.         });
  7.     });
  8.     $('#estados').on('change', function (){
  9.         var idEstado = $(this).val();
  10.         $('#ciudades').empty();
  11.         $.get('/ciudades.php', { id: idEstado }, function (data){
  12.             data = $.parseJSON(data);
  13.             $.each(data, function (i, d){
  14.                 $('#ciudades').append('<option value="' + d.id + '">' + d.nombre + '</option>');
  15.             });
  16.         });
  17.     });
  18. });
  19.  

PHP:

Estados:
Código: PHP
  1. <?php
  2. $query = No tienes permisos para ver links. Registrate o Entra con tu cuenta('SELECT ID, Nombre FROM Estados Order By Nombre ASC');
  3. $arr = No tienes permisos para ver links. Registrate o Entra con tu cuenta();
  4. while($resultado = No tienes permisos para ver links. Registrate o Entra con tu cuenta($query))
  5. {
  6.     $arr[] = $resultado;
  7. }
  8. echo No tienes permisos para ver links. Registrate o Entra con tu cuenta($arr);
  9. ?>
  10.  

Ciudades:
Código: PHP
  1. <?php
  2. $idEstado = (int)$_GET['id'];
  3. $query = No tienes permisos para ver links. Registrate o Entra con tu cuenta('SELECT ID, Nombre FROM Ciudades WHERE idEstado = ' . $idEstado . ' Order By Nombre ASC');
  4. $arr = No tienes permisos para ver links. Registrate o Entra con tu cuenta();
  5. while($resultado = No tienes permisos para ver links. Registrate o Entra con tu cuenta($query))
  6. {
  7.     $arr[] = $resultado;
  8. }
  9. echo No tienes permisos para ver links. Registrate o Entra con tu cuenta($arr);
  10. ?>
  11.  
« Última modificación: Octubre 05, 2013, 04:01:37 am por s00rk »

Desconectado alexander1712

  • *
  • Underc0der
  • Mensajes: 850
  • Actividad:
    0%
  • Reputación -2
    • Ver Perfil
    • El blog del programador
    • Email
« Respuesta #6 en: Octubre 04, 2013, 02:21:23 pm »
s00rk, es una buena muestra de voluntad que dejes el código, pero siempre tratamos que la gente aprenda por si misma buscando y leyendo, dandole pistas, no todo el código, de todos modos, se agradece que le prestes el código que para ti soluciona su problema, pero ten en cuenta eso.

Si me veo en la necesidad de comentarte lo que en mi opinión podrías mejorar, voy a dejar de lado javascript, porque no creo estar capacitado como para expresar mi opinión, no se de javascript tanto como quiciera, entiendo tu código a la perfeccion, pero no estoy en posición de criticar nada.

Lo que si quiero mensionar, es que en lo que respecta a php, usas mal el operador de concatenación, ya que usas comillas dobles que obligan al interprete a parsear las instrucciones contenidas en ellas, podrías ignorar al concatenador y poner directamente la variable en la instrucción sql, sin usar ".", ya que de todos modos parseará la instrucción. O lo que estaría realmente correcto es tratar a la linea de SQL como una sentencia literal (usando apóstrofes) y usando un operador de concatenación.

No es mi intención ofender ni nada, pero me pareció justo, ya que le permites a only ver tu código, ofrecerte una mejora hacia tu código y quizás algo que no tenías en cuenta.

saludos!

Desconectado s00rk

  • *
  • Underc0der
  • Mensajes: 68
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
« Respuesta #7 en: Octubre 04, 2013, 10:11:27 pm »
ohhh si, sorry, de hecho lo coloque ya que estaba trabajando ya sobre algo y solo saque el codigo de mi projecto  y lo pase aca, exepto la de php en este ya llevo tiempo sin usarlo hehe.

Y si se agradece tu comentario, de hecho eso no lo sabia, anteriormente lei que el usar " en ve de ', es mas rapido, aunque nunca se menciono nada de concatenar, igualmente entones preferiria usar ' , ya que pues se me hace mas comodo a la hora de luego checar tener separado la consulta de la variables que use en ellas.

Igual gracias por eso, si llego a regresar a php puro sin algun framework lo hare de esa forma xP

Desconectado alexander1712

  • *
  • Underc0der
  • Mensajes: 850
  • Actividad:
    0%
  • Reputación -2
    • Ver Perfil
    • El blog del programador
    • Email
« Respuesta #8 en: Octubre 04, 2013, 11:30:49 pm »
No tienes permisos para ver links. Registrate o Entra con tu cuenta
ohhh si, sorry, de hecho lo coloque ya que estaba trabajando ya sobre algo y solo saque el codigo de mi projecto  y lo pase aca, exepto la de php en este ya llevo tiempo sin usarlo hehe.

Y si se agradece tu comentario, de hecho eso no lo sabia, anteriormente lei que el usar " en ve de ', es mas rapido, aunque nunca se menciono nada de concatenar, igualmente entones preferiria usar ' , ya que pues se me hace mas comodo a la hora de luego checar tener separado la consulta de la variables que use en ellas.

Igual gracias por eso, si llego a regresar a php puro sin algun framework lo hare de esa forma xP

 :) las comillas dobles lo que hacen es parsear una cadena, en otras palabras analizan la cadena en busca de variables por ejemplo que puedan estar siendo utilizadas, esto es un poco brusco pero para que te des una idea.

Los apostrofos le indican a php que dentro de ellos, lo que esté escrito es literal, osea que no hay variables ni nada, lo que está ahí debe ser interpretado tal cual está escrito.

La concatenación (los puntos), nos permiten unir variables por ejemplo, con literales u otras variables.

No tiene sentido utilizar comillas y concatenadores ya que podrías usar tranquilamente la variable dentro de la comilla.

Y no es preciso afirmar que php es más "rápido" o más lento por usar literales con concatenadores o parsear los textos, quizá lo sea, pero yo no cuento con medios fidedignos para probarlo.

Lo que si te puedo decir, es que habla mal de un código cuando se mezclan conceptos claves, y es esa la razón de que la gente usa literales con concatenadores o parsea el texto, porque hacer las cosas de forma innecesaria solo denota ignorancia, por eso es preciso que se aclaren este tipo de cosas. (aclaro que no trato de decirte ignorante en lo absoluto, es una simple explicación de por que deberían usarse las cosas para lo que fueron diseñadas y no para otra cosa, espero no me mal interpretes)

Un saludo :)

 

¿Te gustó el post? COMPARTILO!



[SOLUCIONADO] ¿Kali Linux o Kali Linux Ligth ?

Iniciado por worq

Respuestas: 2
Vistas: 7027
Último mensaje Noviembre 21, 2017, 12:28:54 pm
por Codig0Bit
[SOLUCIONADO] Multiuploader de imagenes con mysql, hosting de imagenes con mysql

Iniciado por graphixx

Respuestas: 4
Vistas: 2185
Último mensaje Marzo 26, 2013, 05:42:58 pm
por Xt3mP
[SOLUCIONADO] ¿Como publicar un software como software libre?

Iniciado por FuriosoJack

Respuestas: 2
Vistas: 1591
Último mensaje Mayo 23, 2017, 07:24:22 am
por HATI
[SOLUCIONADO] Linux Mint, errores, errores y mas errores...

Iniciado por n1sendev

Respuestas: 12
Vistas: 2846
Último mensaje Noviembre 22, 2017, 06:50:55 am
por RuidosoBSD
[SOLUCIONADO] Ayuda urgente con Virus "Virus.Win32Sality"

Iniciado por Napsters

Respuestas: 6
Vistas: 3416
Último mensaje Junio 11, 2012, 03:38:18 am
por Satyricon