Ver Mensaje Individual
  #2 (permalink)  
Antiguo 06/12/2014, 16:22
Avatar de Alexis88
Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
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