Sv Community El Salvador
Soporte y Tecnología => Programación => Web => Topic started by: mxgxw on May 10, 2005, 09:41:05 pm
-
Bueno gente un día de estos alguien me preguntó como trabajar un problema interesante en PHP. Imaginense que tienen un formulario generado de N campos, es decir no conocen el numero de datos que van a recibir, y les interesa leer los datos de cada uno de estos.
Un ejemplo mas entendible, en una página piden una cantidad de numeros y en la siguiente presentan un formulario con la cantidad de numeros especificados, ahora imaginen que tienen que sacar el promedio de todo esto.
PHP tiene un truquito para hacer esto y tiene que ver mas con el formulario que con el lenguaje en si.
Lo primero que tenemos que hacer es meter en nuestro formulario el nombre del campo agregando al final el caracter [], así:
<form action="MyScript.php" method="post">
<input type="text" name="valores[]"> <br>
<input type="text" name="valores[]"> <br>
...
<input type="text" name="valores[]"> <br>
<input type="submit">
</form>
Una ves hecho el formulario necesitamos obtener todos estos valores en PHP, el procedimiento más simple es el siguiente:
<?php
// Obtenemos la variable del formulario:
$valores = $_POST['valores'];
// Mostramos los datos del arreglo haciendo uso de un foreach
foreach($valores as $i->$val) {
// $i -> Es el indice del arreglo de los datos
// $val -> Es el valor contenido en el arreglo
/*** TODO: Aquí va el codigo que trabaja con los datos ***/
}
?>
Esta es la forma más facil de capturar datos multiples enviados por formularios, las aplicaciones son muchas, por ejemplo para una página que maneje registros de base de datos pueden tener un campo de formulario oculto llamado "id[]" que se encargue de almacenar el Id respectivo de cada registro.
-
Bastante interesante.... :shock:
-
suena interesante
-
hey..mira...eso de PHP es komo PERL, porke lo ke yo he aprendido es PERL y ese lenguaje si ke es la ley kon STRINGS.....uya...kasi todo lo ke sea de despedazar STRINGS lo hago en PERL!!!
-
Sii perl es lo mejor que hay para trabajar con cadenas :P jeje te ahorra un monton de tiempo cuando estas analizando archivos o cosas por el estilo...
-
Pues tu aporte esta muy bien explicado aunque tambien puedes hacerlo con una estructura for pero para ello necesitas obtener el numero de elementos del arreglo con la funcion COUNT y luego empezar desde 0 hasta el numero de elementos que devolvio la estructura for por ejemplo
:evil:
<?php
// Obtenemos la variable del formulario:
$Cantidad = COUNT($_POST['valores']);
// Mostramos los datos del arreglo haciendo uso de un for
for($i=0;$i<$Cantidad;$i++)
{
// $i -> Es el indice del arreglo
$Mostrar = $_POST["valores"][$i];
echo "$Mostrar<br>";
}
?>
De esta forma puedo recorrer cada uno de los valores y hacer lo que quiera con estos :D
Modificado(mxgxw): Te agregue las etiquetas code al codigo.
-
la verdad tu respuesta tambien esta buena pero si lo queres optimizar mas simplemente tenes que hacer uso del foreach por ejemplo
foreach ( $_POST['valores'] as $valor ){
echo $valor;
}
Asi te asegurar que va a recorrer el arreglo sin problemas.
-
gracias mxgxw :thumbsup: es que yo soy nuevo en esto del foro jeje y pues tenes razon rdoggsv se puede utilizar con un foreach :thumbsup: