Foros del Web » Programando para Internet » PHP »

crear input select a partir de arrays?

Estas en el tema de crear input select a partir de arrays? en el foro de PHP en Foros del Web. Hola a todos, alguien que me pueda ayudar en convertir string a select(desplegables) la idea es tener un select por cada elemento entre (;;;) lo ...
  #1 (permalink)  
Antiguo 06/12/2014, 15:54
 
Fecha de Ingreso: marzo-2013
Mensajes: 26
Antigüedad: 11 años, 8 meses
Puntos: 0
crear input select a partir de arrays?

Hola a todos, alguien que me pueda ayudar en convertir string a select(desplegables) la idea es tener un select por cada elemento entre (;;;) lo intento con explode y unos cuantos foreach pero no llego al resultado....solo logro generar 3 select pero con los option sin separar....llevo dias tratando de solucionarlo alguna ayuda porfavor? se agradece de antemano.

Código PHP:
Ver original
  1. $str1=color;;;talla;;;peso;;;
  2. $str2=rojo,azul,verde;;;s,m,l,xl;;;100;;;
  3. foreach($array1 as $key){
  4.     if ($key!="") {
  5.         ?>
  6.         <select name="<?php echo $key?>"?>
  7.         <option value="0">seleccione</option>
  8.         <?php
  9.         foreach($array2 as $key2=>$value){
  10.             if ($value!="") {
  11.             ?>
  12.             <option value="<?php echo $value?>"><?php echo $value?></option>
  13.             <?php
  14.             }
  15.         }
  16.         ?>
  17.         </select>
  18.         <?php
  19.     }  
  20. }
  #2 (permalink)  
Antiguo 06/12/2014, 16:22
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 13 años
Puntos: 977
Respuesta: crear input select a partir de arrays?

Los puntos y comas al final de cada cadena están de más, solo generarán un espacio vacío al final de cada array, además, te falta separar a las opciones de las comas que las separan.

Código PHP:
Ver original
  1. $str1 = 'color;;;talla;;;peso';
  2. $str2 = 'rojo,azul,verde;;;s,m,l,xl;;;100';
  3.  
  4. $categorias = explode(';;;', $str1); //Categorías
  5. $totalCat = count($categorias); //Total de categorías
  6. $opciones = explode(';;;', $str2); //Opciones
  7.  
  8. for ($i = 0; $i < $totalCat; $i++){
  9.     $opc = explode(',', $opciones[$i]); //Sub-grupo de opciones
  10.     $tot = count($opc); //Total de opciones del sub-grupo actual
  11.     echo '<select>';
  12.     for ($j = 0; $j < $tot; $j++){
  13.         echo '<option>' . $opc[$j] . '</option>';
  14.     }
  15.     echo '</select>';
  16. }

De esta forma, tomo a las categorías y a las opciones, luego, recorro al array de la categorías para ir formando las listas y, en cada iteración, tomo al conjunto de opciones equivalentes, calculo el total que estas suman y las imprimo como opciones de cada lista.

Así es como quedaría:

Código HTML:
Ver original
  1.     <option>rojo</option>
  2.     <option>azul</option>
  3.     <option>verde</option>
  4.  
  5.     <option>s</option>
  6.     <option>m</option>
  7.     <option>l</option>
  8.     <option>xl</option>
  9.  
  10.     <option>100</option>

Ahora, solo te queda asignarle valores a las opciones e identificadores a las listas para diferenciarlas unas de otras.

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #3 (permalink)  
Antiguo 06/12/2014, 16:53
 
Fecha de Ingreso: marzo-2013
Mensajes: 26
Antigüedad: 11 años, 8 meses
Puntos: 0
Respuesta: crear input select a partir de arrays?

Entendido,te pasaste muchas gracias, ya me estaba complicando!, muy agradecido!

Etiquetas: input, select
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 22:27.