Foro de elhacker.net

Programación => PHP => Mensaje iniciado por: Necro en 2 Septiembre 2010, 21:01 pm



Título: Como optimizo esto?
Publicado por: Necro en 2 Septiembre 2010, 21:01 pm
perdón por el titulo del tema pero no se me ocurrió nada mas descriptivo.

Esta es la cuestión, tengo una pagina que tiene 15 formularios iguales(auqnue dentro de la misma etiqueta form) cada uno con 10 imputbox, y cdada uno de los 15 va a hacer un insert. hice el script para generarlos y a cada imput box le agregue un identificador para saber de que campo era, o sea que existe el imput con id=nombre0 y nombre1 y nombre2 etc etc.

pero para recibirlos y utilizarlos tengo que hacer esta chanchada:

Código:
$nombre	= array($_POST('cnombre0'), $_POST('cnombre1'), $_POST('cnombre2'), $_POST('cnombre3'), $_POST('cnombre4'), $_POST('cnombre5'), $_POST('cnombre6'), $_POST('cnombre7'), $_POST('cnombre8'), $_POST('cnombre9'), $_POST('cnombre10'), $_POST('cnombre11'), $_POST('cnombre12'), $_POST('cnombre13'), $_POST('cnombre14'), $_POST('cnombre14'));	 

eso por cada uno de los 10 campos, la cuestión es que tiene que haber una forma mejor pero no conozco, lo que lei de nombres variables de variables no me ayudo, el problema es que el identificador esta en el nombre de la variable y se rompe todo. supongo que debe haber alguna forma mas facil pero esta vez San Google me falló, voy a prenderle mas velas.


Título: Re: Como optimizo esto?
Publicado por: Franki en 2 Septiembre 2010, 21:55 pm
No entiendo muy bien tu problema, pero puedes utilizar los names tipo arrays.

Es decir, si tienes 15 campos inputs donde el usuario va a introducir un nombre, ponle a esos 15 campos inputs el siguiente atributo name="nombres[]".

De esta forma en PHP tendrás un array con esos 15 nombres y puedes acceder a él desde

Código
  1. $_POST['nombres']

Si quieres acceder al primer nombre pues:

Código
  1. $_POST['nombres'][0]

o incluso puedes procesarlos con un bucle:

Código
  1. foreach($_POST['nombres'] as $nombre)

EDITO: o mejor aún procesarlos con un for:

for($i=0; $i<count($_POST['nombres']); $i++)
{

}

De esta forma puedes acceder a los demás inputs del formulario. Si tienes 15 campo apellidos pues le pones el name="apellidos[]" y puedes acceder al apellido de ese nombre con

Código
  1. $_POST['apellidos'][$i];


Título: Re: Como optimizo esto?
Publicado por: ~ Yoya ~ en 3 Septiembre 2010, 12:48 pm
Yo tampoco entendí... Haz pregunta inteligente planteando tu problema para que recibas respuestas inteligente... :P