Foros del Web » Programando para Internet » PHP »

php codigo para select option

Estas en el tema de php codigo para select option en el foro de PHP en Foros del Web. Hola. Tengo una lista (un formulario) de unos 100 paises con select option, donde el usuario elije una pais y luego con $_GET lo paso ...
  #1 (permalink)  
Antiguo 01/02/2009, 11:50
Avatar de miros84  
Fecha de Ingreso: diciembre-2008
Mensajes: 351
Antigüedad: 15 años, 4 meses
Puntos: 4
php codigo para select option

Hola. Tengo una lista (un formulario) de unos 100 paises con select option, donde el usuario elije una pais y luego con $_GET lo paso a la pagina send.php que lo envia a la base e datos. Pero para cada pais, no me manda a la base de datos, el nombre del pais, sino me manda el numero correspondiente. 1 para Albania, 2 para andora, ....100 para zimbabve. La pregunta es como recuperar luego el nombre del pais. Cuando yo hago consultas a la base de datos, recibiré un numero. Por ejemplo 34. Lo unico que se me ocurre es hacer un ifelse 100 veces para cada pais, pero me parece un rollo. Debe haber algun modo mas sencillo. Es que ademaz tengo que hacer lo mismo con otros formularios. Tambien he pensado poner en el value del option el nombre del pais en vez de un numero, pero muchos paises tienen acentos o la letra ñ en otros formularios que podria provocar problemas. No se como hacerlo. Teneis alguna idea?
  #2 (permalink)  
Antiguo 01/02/2009, 12:10
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: php codigo para select option

Hola miros84,

Me imagino ese select lo bajas de una Base de Datos no?, si es así, solamente haz un select nuevamente a la base de datos y obtienes el nombre del pais.

Otra opcion es que en el value pases el numero y el nombre, algo asi:
Código html:
Ver original
  1. <option value="1|Pais">Pais</option>

En PHP al recibir el valor, usas explode() para separar el ID y el nombre. Para resolver lo de los acentos lo mejor es aplicar urlencode().

Saludos
  #3 (permalink)  
Antiguo 01/02/2009, 14:20
Avatar de miros84  
Fecha de Ingreso: diciembre-2008
Mensajes: 351
Antigüedad: 15 años, 4 meses
Puntos: 4
Respuesta: php codigo para select option

Hola GatorV
No utilizo base de datos. El fomr con el select y los option los tengo en html. Entonces no si lo me has comentado servirá. La funccion que me comentaste para los accentos, podria poner un ejemplo. No me importa poner los paises en vez de los numeros,incluso será mas facil por que no tendré que convertirlo luego cada numero a su correspondiente pais. Si me puedes dar un ejemplo de la funccion y de lectura luego con php te lo agredeceria.
  #4 (permalink)  
Antiguo 01/02/2009, 15:32
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: php codigo para select option

No necesitas hacer nada, al aplicar urlencode se envian las variables escapadas y las puedes leer correctamente desde PHP.

Saludos
  #5 (permalink)  
Antiguo 02/02/2009, 08:00
Avatar de miros84  
Fecha de Ingreso: diciembre-2008
Mensajes: 351
Antigüedad: 15 años, 4 meses
Puntos: 4
Respuesta: php codigo para select option

Pero eso es si el value del option es un pais. Pero si es el numero correspondiente tengo que convertirlo en el pais correspondiente. Y alli viene el problema de los accentos. Como utilizar la funcion que me comentaste?
  #6 (permalink)  
Antiguo 02/02/2009, 09:52
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: php codigo para select option

Aun asi no veo cual es el problema:
Código php:
Ver original
  1. switch($_POST['idpais']) {
  2.      case 1:
  3.           $pais = "País";
  4.           break;
  5.      case 2:
  6.           $pais = "México";
  7.           break;
  8.       // etc.
  9. }

Saludos
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 23:28.