Foros del Web » Programando para Internet » Javascript »

Agregar dinámicamente options a un Select

Estas en el tema de Agregar dinámicamente options a un Select en el foro de Javascript en Foros del Web. Buenas... Estoy un poco vuelta loca ya con este tema . Tengo una tabla que al apretar el boton "+" agrega una fila mas al ...
  #1 (permalink)  
Antiguo 20/09/2010, 08:10
 
Fecha de Ingreso: agosto-2009
Mensajes: 19
Antigüedad: 14 años, 8 meses
Puntos: 0
Pregunta Agregar dinámicamente options a un Select

Buenas...

Estoy un poco vuelta loca ya con este tema . Tengo una tabla que al apretar el boton "+" agrega una fila mas al formulario. Esta fila que agrega tiene un <select> que me lista los productos, un textbox y otro <select> para seleccionar el tipo de producto.
El problema que tengo es que el primer <select> debo agregar los <option>. los datos se encuentran en un arreglo en php. el problema es que como lo tengo el explorador me indica o que falta un ; o que no he terminado bien la secuencia de string y no me deja cargar las opciones en el select

este es el fragmento de codigo:

var cellRight5 = row.insertCell(0);// el de los productos
cellRight5.innerHTML="<select name=\"pedido2["+cont+"]\" id=\"pedido2["+cont+"]\"><option value=\"-1\">-- Seleccione el producto que desea --</option><?php for($i=0;$i<$lineas;$i++)
{$string2=explode("|",$totalproductos[$i]);echo "<option value=\"".$string2[0]."\">".$string2[1]."</option>";}?></select>";

$linea contiene el numero de productos
$totalproductos es cada linea del archivo, viene por un codigo y el nombre separado del caracter | ej: 0001|Jamon de pierna
$string2 guarda en la posicion 0 el codigo y en la posicion 1 el nombre

Espero se entienda, muchas gracias.
  #2 (permalink)  
Antiguo 20/09/2010, 08:30
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Tema movido desde PHP a Javascript
  #3 (permalink)  
Antiguo 20/09/2010, 08:37
Avatar de Kamae  
Fecha de Ingreso: abril-2008
Ubicación: Barcelona (Catalunya)
Mensajes: 307
Antigüedad: 16 años
Puntos: 13
Respuesta: Agregar dinámicamente options a un Select

Buenas Gleomar

Revisándolo no parece que te falte ningún (), ni [], ni ;... está todo bien. Seguro que el fallo está ahí? Comenta todo el trozo y ejecuta a ver si sigue quejándose.

1) Si ya no se queja es que estás en lo cierto y el error está ahí, déjalo comentado y haz un echo antes del cellRight5.innerHTML con todas las variables que usas (lo ideal es que reproduzcas tal cuál la sentencia HTML) para ver que realmente lo coje todo bien.

2) Si se sigue quejando el error no está ahí, revisa antes de ese trozo de código que no te hayas olvidado nada


Siento no poder ayudarte, sólo puedo decirte lo que yo hago cuando me encuentro con estos casos

Saludos
  #4 (permalink)  
Antiguo 21/09/2010, 13:48
 
Fecha de Ingreso: agosto-2009
Mensajes: 19
Antigüedad: 14 años, 8 meses
Puntos: 0
Respuesta: Agregar dinámicamente options a un Select

Hola Kamae... gracias por tu pronta respuesta.

Bueno te cuento que comente esa linea que me genera errores y coloqué un fragmento de código para asignar a un arreglo en Javascript lo que estoy guardando en ese arreglo de php. el codigo es el que sigue

<?php
for ($i=0;$i<$lineas;$i++) //recorre lineas del archivo
$string2=explode("|",$totalproductos[$i]);
echo "x[$i] = '$string2[0]';"; //asigna al arreglo x el codigo producto
echo "y[$i] = '$string2[1]';"; //asigna al arreglo y el nombre del producto
?>

alert("x:"+x.length+"y:"+y.length); // muestro la longitud de los arreglos
alert(x[1]);//imprimo lo que tiene el arreglo x en la posicion 1

lo curioso de mi problema es que x.length me muestra que hay 18 elementos en el arreglo (cosa que es verdad) pero cuando muestro el elemento x[1] me muestra "Undefined"

no tiene sentido :s no se que es lo que estoy haciendo mal... si alguien me puede dar luz, lo agradeceria :( saludos.
  #5 (permalink)  
Antiguo 22/09/2010, 04:26
Avatar de Kamae  
Fecha de Ingreso: abril-2008
Ubicación: Barcelona (Catalunya)
Mensajes: 307
Antigüedad: 16 años
Puntos: 13
Respuesta: Agregar dinámicamente options a un Select

Hola Gleomar

La verdad es que estoy un poco verde en JavaScript, pero he estado haciendo pruebas. Te pongo el código tuyo modificado (hay un lado donde sólo hacías echos pero realmente no copiabas la información a las variables, ni veo dónde las variables JS recogen lo que contiene la variable PHP...). Yo lo he copiado en una página nueva y me ha funcionado. ¿Problemas? Que lo he hecho a pelo, sabiendo el número de arrays que va a haber. No he conseguido automatizarlo en bucles fusionando PHP y JavaScript. Yo te lo pongo de todas formas y a ver si te sirve algo:

Código PHP:
<?php
    $totalproductos
[0]="11|Cajetilla de tabaco";
    
$totalproductos[1]="22|Mechero zipo";
    
$totalproductos[2]="33|Papel de arroz";
    
$lineas=3;
    for (
$i=0;$i<$lineas;$i++){ // recorre lineas del archivo
       
$string2=explode("|",$totalproductos[$i]);
       
$x[$i]=$string2[0]; // asigna al arreglo x el codigo producto
       
$y[$i]=$string2[1]; // asigna al arreglo y el nombre del producto
       
echo "x[".$i."]=".$x[$i]."<br/>"//muestra el contenido de x en PHP
       
echo "y[".$i."]=".$y[$i]."<br/><br/>"//muestra el contenido de y en PHP
    
}
?>

<script language="JavaScript" type="text/javascript">
    var x=new Array();
    var y=new Array();
    x[0]=<?php echo $x[0]?>; // Le mete el valor PHP a la variable x en JS
    y[0]="<?php echo $y[0];?>"; // Le mete el valor PHP a la variable y en JS
    x[1]=<?php echo $x[1]?>; // Le mete el valor PHP a la variable x en JS
    y[1]="<?php echo $y[1];?>"; // Le mete el valor PHP a la variable y en JS
    x[2]=<?php echo $x[2]?>; // Le mete el valor PHP a la variable x en JS
    y[2]="<?php echo $y[2];?>"; // Le mete el valor PHP a la variable y en JS
    for (i=0;i<3;i=i+1){
            // Muestro la información
        alert("x["+i+"]="+x[i]+"\ny["+i+"]="+y[i]+"\ny["+i+"].length="+y[i].length+"\n\nPosiciones X="+x.length+"\nPosiciones Y="+y.length);
    }
</script>
Espero que te sea útil
Saludos!
  #6 (permalink)  
Antiguo 22/09/2010, 09:06
 
Fecha de Ingreso: agosto-2009
Mensajes: 19
Antigüedad: 14 años, 8 meses
Puntos: 0
Respuesta: Agregar dinámicamente options a un Select

Gracias Kamae... lo probare a ver que tal me va...

De verdad que PHP a veces se puede volver una pesadilla :S

Etiquetas: 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 21:46.