Foros del Web » Programando para Internet » PHP »

Resuelto: Como acceder a los datos de una lista

Estas en el tema de Resuelto: Como acceder a los datos de una lista en el foro de PHP en Foros del Web. Tengo una lista en un formulario que realicé en php. Al elegir un elemento del select, se agrega el valor a la lista. En la ...
  #1 (permalink)  
Antiguo 02/09/2004, 17:02
Avatar de huntress  
Fecha de Ingreso: agosto-2004
Ubicación: Chile
Mensajes: 7
Antigüedad: 13 años, 3 meses
Puntos: 0
Resuelto: Como acceder a los datos de una lista

Tengo una lista en un formulario que realicé en php. Al elegir un elemento del select, se agrega el valor a la lista. En la lista hay agregados algunos valores. Ahora al presionar el boton enviar para grabar los datos, no sé como poder acceder a cada uno de ellos para poder grabarlos.

por ejemplo: si en la lista hay 3 valores, al realizar el submit, no sé como se manejan las listas. para poder grabarlos uno a uno.

$sql = "INSERT INTO alumno_curso( elemento_lista, id_rut)
VALUES ('¿aqui que pongo para grabar el elemento n de la lista? ', '$rut')";


Espero que me puedan ayudar esta vez. gracias a quien responda.

Última edición por huntress; 03/09/2004 a las 09:44 Razón: Resuelto
  #2 (permalink)  
Antiguo 02/09/2004, 17:25
Avatar de HiTek  
Fecha de Ingreso: noviembre-2003
Ubicación: LF, Santiago.Chile
Mensajes: 217
Antigüedad: 14 años
Puntos: 0
si tu metodo es POST o GET sería asi

$sql = "INSERT INTO alumno_curso( elemento_lista, id_rut)
VALUES ('" .$_METODO["nombre_de_la_lista"] . "', '$rut')";

salu2
  #3 (permalink)  
Antiguo 03/09/2004, 02:32
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 15 años, 6 meses
Puntos: 16
Hola,

Define que tipo de control es "lista". Si no me equivoco, es una clase de SELECT. Si es asi, al enviar el formulario funciona como un SELECT. Asi que para que envie los datos, estos deben estar seleccionados (y estar definido como multiple). Es la forma que tiene los navegadores de enviar datos del navegador. Auqnue tu veas la lista con valores, el navegador solo los envia si estan seleccionados.

La solucion normal es usar javascript para concatenar el contenido de la lista (separados los elementos por un caracter especial, como una coma o un punto y coma) y meter ese valor en un campo oculto del formulario. Luego el PHP coge ese valor del campo oculto, realizar un explode() (www.php.net/explode) para convertir esa cadena en un array de valores. Luego manejas ese array.

Saludos.

PD: La parte de javascript la miras en el foro de javascript.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #4 (permalink)  
Antiguo 03/09/2004, 09:55
Avatar de huntress  
Fecha de Ingreso: agosto-2004
Ubicación: Chile
Mensajes: 7
Antigüedad: 13 años, 3 meses
Puntos: 0
Problema resuelto

Muchas gracias por la ayuda. me sirvió mucho. Esto es lo que hice en javascript para poder acceder a la lista en php:

Primero para poder realizar la operacion de concatenación en el botón que envié el formulario, llamé la función de concatenación:

<input type="submit" name="enviar" value="Enviar" onClick="concatena(this.form)">
<input type="hidden" name="oculto">


la funcion en javascript es:

function concatena(formu)
{
var resultado ='';
for (i=0;i<formu.lista.length; i++) {
// if (formu.lista.options[i].selected){ //si quisiera grabar solo los que están seleccionados
resultado = resultado + "|" + formu.lista.options[i].text;
// }
}
formu.oculto.value = resultado;
}


y finalmente cuando se realiza el action de mi formulario y se abre la página en php, puedo manejar la lista sin problemas. para separarlos en un arreglo ocupo la función explode:

$paso=explode("|",$oculto);

y finalmente tengo acceso a cada uno de los elementos referenciando a su índice.

$paso[indice]

Ojalá, esto les sirva a otros tanto como a mi.
  #5 (permalink)  
Antiguo 21/06/2005, 09:28
 
Fecha de Ingreso: junio-2005
Mensajes: 2
Antigüedad: 12 años, 6 meses
Puntos: 0
Pues casi dos años después a mí me va a servir.

muchas gracias
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 12:36.