PHP - varios nombres para un mismo campo input

 
Vista:

varios nombres para un mismo campo input

Publicado por Jéssica  (1 intervención) el 04/12/2007 11:43:20
Hola gente, tengo una duda un poco complicada de explicar, a ver si podeis entenderme...

Tengo un .php (espectaculo1.php) que pide una cantidad, esa cantidad se le pasa por POST a otro .php (espectaculo2.php) y éste tiene que generar tantos
<INPUT TYPE='text' SIZE=2 MAXLENGTH=2 NAME='nombre'>

como indique la cantidad (si cantidad=2 mostrara 2, para cantidad=3, mostrará 3.....) la cosa es que se supone que cada uno deberá llevar un nombre ya que lo que introduzca el usuario se pasará a un tercer .php (espectaculo3.php) que hará la inserción en la base de datos. En principio yo había pensado algo así para espectaculo2.php:

$cont=0;
$ses=1;
while($cont<$cant){ //$cant= a la cantidad que me pasan de espectaculo1.php
$hora_sesion="hora_ses".$ses;
echo"Sesion $ses<br> Hora: <INPUT TYPE='text' NAME=$hora_sesion>";
$ses++;
$cont++;
}

para que de esta forma cada 'NAME' tuviese un valor, pero no me funciona bien, ¿podríais ayudarme?

Muchas gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:varios nombres para un mismo campo input

Publicado por Diego Romero (1450 intervenciones) el 04/12/2007 14:29:54
En espectaculo2.php

$cont=0;
$ses=1;
while($cont<$cant){ //$cant= a la cantidad que me pasan de espectaculo1.php
$hora_sesion="hora_ses".$ses;
echo"Sesion $ses<br> Hora: <INPUT TYPE='text' NAME='nombre[]'>";
$ses++;
$cont++;
}

En espectaculo3.php tendrás un $_POST['nombre'] que es un array de índice numérico de base cero que contiene tantos elementos como los inputs generados con los respectivos valores de cada uno.

Enjoy.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:varios nombres para un mismo campo input

Publicado por Jéssica (8 intervenciones) el 04/12/2007 16:57:34
Hola otra vez Diego...

A ver creo que he entendido lo que me querias decir pero no me da el resultado esperado.

En espectaculo2.php tengo:
$cont=0;
$ses=1;
echo"<center>Sesiones para la fecha: $dia_e / $mes_e / $anyo_e <br>";
while($cont<$cant_ses){
// $hora_sesion="hora_ses".$ses;
echo"Sesion $ses<br> Hora: <INPUT TYPE='text' NAME='hora[]'><br>";
$ses++;
$cont++;
}

y en espectaculo3.php:

if($_POST['hora']){
foreach($_POST['hora'] as $ind=>$nada){
$hora=$ind;
echo"<comnegrogrande>SESION:</comnegrogrande><INPUT VALUE='$hora' READONLY><BR>";
}
}

el resultado es que en espectaculo3.php cada input me muestra el indice y no lo que contiene el vector en dichos índices, es decir que si $cant_ses=2 el resultado de espectaculo3.php es: 0 y 1 en cada caso cuando lo que tendría que mostrar es el valos que yo introduzco en los inputs de espectaculo2.php

¿que es lo que he hecho mal?

gracias!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:varios nombres para un mismo campo input

Publicado por Diego Romero (1450 intervenciones) el 04/12/2007 22:14:30
Confundes la sintaxis de foreach, debería ser:

if($_POST['hora']){
foreach($_POST['hora'] as $ind=>$nada){
$hora=$nada; // nota el cambio aquí
echo"<comnegrogrande>SESION:</comnegrogrande><INPUT VALUE='$hora' READONLY><BR>";
}
}

Claro en lo personal lo habría hecho así:

$horas = $_POST['hora'];
$c = count($horas);
if ($c > 0) {
for ($i=0;$i < $c; $i++) {
echo"<comnegrogrande>SESION:</comnegrogrande><INPUT VALUE='$horas[$i]' READONLY><BR>";
}
}

porque me resulta más intuitivo y más rápido (un for es más rápido que un foreach).
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar