Foros del Web » Programando para Internet » PHP »

pasar valor metido en campo a una variable

Estas en el tema de pasar valor metido en campo a una variable en el foro de PHP en Foros del Web. Hola, tengo el siguiente problema y es que quiero ejecutar un bucle tantas veces como el usuario pida. y no tengo mucha idea como puedo ...
  #1 (permalink)  
Antiguo 14/03/2010, 11:22
 
Fecha de Ingreso: febrero-2010
Mensajes: 63
Antigüedad: 14 años, 2 meses
Puntos: 0
pasar valor metido en campo a una variable

Hola,

tengo el siguiente problema y es que quiero ejecutar un bucle tantas veces como el usuario pida.
y no tengo mucha idea como puedo pillar dicha numero, aqui os dejo el codigo:

<td><input type="text" name=" <?php $num ?>" cantidad" id="cantidad" /> Numero de veces</td>

<?php

for ($i = 1; $i <= $num; $i++) {
?>
<tr>
<td> <?php echo "num $i"?> <input type="text" name="ingrediente<?php $i ?>" /> </td>
</tr>
<?php
}

?>

El bucle se ejecuta perfectamente si le machaco el valor al $num y le pongo uno yo, he probado a ponerse que el fallo esta al principio pero no se como hacerlo para que me pille el numero, alguien tiene alguna idea?

gracias y salu2
  #2 (permalink)  
Antiguo 14/03/2010, 11:26
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 22 años, 2 meses
Puntos: 772
Hola txin

Muevo tu tema al foro de PHP desde HTML.

Saludos,
  #3 (permalink)  
Antiguo 14/03/2010, 11:44
Avatar de santris  
Fecha de Ingreso: agosto-2009
Ubicación: Sant Feliu de Llobregat
Mensajes: 955
Antigüedad: 14 años, 8 meses
Puntos: 66
Respuesta: pasar valor metido en campo a una variable

Recoge el valor del input en la var $num

Código PHP:
<td><input type="text" name="cantidad"  id="cantidad" /> Numero de veces</td>

<?php
$num
=$_POST["cantidad"];
for (
$i 1$i <= $num$i++) {
?>
<tr>
<td> <?php echo "num $i"?> <input type="text" name="ingrediente<?php echo $i?>" /> </td>
</tr>
<?php
}

?>
Saludos
__________________
Tu álbum de cromos online!!

Última edición por santris; 14/03/2010 a las 11:50
  #4 (permalink)  
Antiguo 14/03/2010, 12:40
 
Fecha de Ingreso: febrero-2010
Mensajes: 63
Antigüedad: 14 años, 2 meses
Puntos: 0
Respuesta: pasar valor metido en campo a una variable

No asi tampoco me funciona.
  #5 (permalink)  
Antiguo 14/03/2010, 13:00
 
Fecha de Ingreso: febrero-2010
Mensajes: 63
Antigüedad: 14 años, 2 meses
Puntos: 0
Respuesta: pasar valor metido en campo a una variable

habia pensado hacer otro form a este codigo en php y cargarlo en un frame dentro de la pagina del formulario.

Pero creo que 1 form dentro de otro no funciona verdad??
  #6 (permalink)  
Antiguo 14/03/2010, 13:08
Avatar de santris  
Fecha de Ingreso: agosto-2009
Ubicación: Sant Feliu de Llobregat
Mensajes: 955
Antigüedad: 14 años, 8 meses
Puntos: 66
Respuesta: pasar valor metido en campo a una variable

Creo que no,

Para que quieres meter un form dentro de otro??
__________________
Tu álbum de cromos online!!
  #7 (permalink)  
Antiguo 14/03/2010, 13:16
 
Fecha de Ingreso: febrero-2010
Mensajes: 63
Antigüedad: 14 años, 2 meses
Puntos: 0
Respuesta: pasar valor metido en campo a una variable

quiero hacer un formulario para que un usuario suba una receta, y a la hora de ingresar los ingredientes quiero que me diga cuantos ingredientes quiere meter y en funcion del numero que meta o elija, se creen x campos para introducir los ingredientes.

Igual tendria que utilizar javascript?

gracias y salu2
  #8 (permalink)  
Antiguo 14/03/2010, 13:26
Avatar de santris  
Fecha de Ingreso: agosto-2009
Ubicación: Sant Feliu de Llobregat
Mensajes: 955
Antigüedad: 14 años, 8 meses
Puntos: 66
Respuesta: pasar valor metido en campo a una variable

Es 'complejo' pero se puede hacer con php, la idea sería:

Un primer formulario que envíe el num de ingredientes.

Un script que genere un form con el num de ingredientes pasados desde el primer form.

Código PHP:
<form>
<?php
$num
=$_POST["cantidad"];

for (
$i 1$i <= $num$i++) {
echo 
"<input type=text name=ingrediente".$i."/>";
}
?>
</form>
__________________
Tu álbum de cromos online!!
  #9 (permalink)  
Antiguo 14/03/2010, 13:45
 
Fecha de Ingreso: febrero-2010
Mensajes: 63
Antigüedad: 14 años, 2 meses
Puntos: 0
Respuesta: pasar valor metido en campo a una variable

lo que pasa que tengo que hacer (o eso creo) un submit para que me pille el numero introducido porque sino no hace nada, entonces piniendo un submit se me ejecuta el primer formulario, por lo que nunca funcionaria.

De la manera que me lo has puesto ya lo intentado y pasa lo te he comentado, y por eso que no se pueden poner formularios anidados.


gracias y salu2
  #10 (permalink)  
Antiguo 14/03/2010, 13:50
Avatar de santris  
Fecha de Ingreso: agosto-2009
Ubicación: Sant Feliu de Llobregat
Mensajes: 955
Antigüedad: 14 años, 8 meses
Puntos: 66
Respuesta: pasar valor metido en campo a una variable

Código PHP:
<form action"donde esté el script que genera el 2 form">
< input type="text" name="cantidad" />
<input type="submit">
</form>

<?php
if(isset($_POST["cantidad"])){
?>
<form>
<?php
$num
=$_POST["cantidad"];

for (
$i 1$i <= $num$i++) {
echo 
"<input type=text name=ingrediente".$i."/><br/>";
}
?>
<input type="submit">
</form>
<?php
}
?>
__________________
Tu álbum de cromos online!!
  #11 (permalink)  
Antiguo 14/03/2010, 14:14
 
Fecha de Ingreso: febrero-2010
Mensajes: 63
Antigüedad: 14 años, 2 meses
Puntos: 0
Respuesta: pasar valor metido en campo a una variable

ya eso esta claro que se ejecutaria bien pero ten encuenta que eso debe de estar dentro de otro formulario que seria el de enviar la receta entera (nombre, ingredientes ....) y no funciona con 2 form anidados como ya te he comentado.

gracias de todos modos.
  #12 (permalink)  
Antiguo 14/03/2010, 14:33
Avatar de santris  
Fecha de Ingreso: agosto-2009
Ubicación: Sant Feliu de Llobregat
Mensajes: 955
Antigüedad: 14 años, 8 meses
Puntos: 66
Respuesta: pasar valor metido en campo a una variable

No entiendo porqué no puedes enviarlo todo desde el segundo form.

Tu preguntas al usuario: cuantos ingredientes quieres poner en la receta?
Muy bien, yo genero otro formulario con el numero de campos de los ingredientes más los campos nombre, descrip etc. y este formulario es el que mando aprocesar.

Código PHP:
<form action"donde esté el script que genera el 2 form">
< input type="text" name="cantidad" />
<input type="submit">
</form>

<?php
if(isset($_POST["cantidad"])){
?>
<form action="procesar_datos.php">
<?php
$num
=$_POST["cantidad"];

for (
$i 1$i <= $num$i++) {
echo 
"<input type=text name=ingrediente".$i."/><br/>";
}
?>
<input type="text" name="nombre"/>
aquí los imputs que quieras
<input type="submit">
</form>
<?php
}
?>
Si quieres hacerlo desde el mismo form tendrias que mirar el evento onchange de un select por ejemplo.

De una u otra forma le has de decir al form2 el num de campos para ingredientes que quieres,
__________________
Tu álbum de cromos online!!
  #13 (permalink)  
Antiguo 14/03/2010, 14:47
 
Fecha de Ingreso: febrero-2010
Mensajes: 63
Antigüedad: 14 años, 2 meses
Puntos: 0
Respuesta: pasar valor metido en campo a una variable

vale ya te entiendo lo que me quieres decir, que el usuario introduzca el numero de ingredientes y que me genere el formulario de la receta con el numero de campos. No habia pensado en esa idea porque estaba obcecado en que tenia que generarme los campos cuando estubiese rellenando la receta.


gracias y salu2
  #14 (permalink)  
Antiguo 14/03/2010, 21:01
Avatar de jmdz  
Fecha de Ingreso: marzo-2010
Ubicación: ¿Acá?
Mensajes: 54
Antigüedad: 14 años, 1 mes
Puntos: 2
Respuesta: pasar valor metido en campo a una variable

también podrías generar al vuelo los campos con JavaScript :P

Código HTML:
Ver original
  1. <form action="">
  2. <div id="div_ingredientes">
  3. <input type="text" name="ingredientes[]"/><br/>
  4. </div>
  5. <input type="button" value="agregar campo" onclick="document.getElementById('div_ingredientes').innerHTML+='<input type=\'text\' name=\'ingredientes[]\'/><br/>';"/>
  6.  
  7. <!-- el resto de los campos -->
  8.  
  9. <input type="submit" value="guardar receta"/>
  10. </form>

Suerte.
  #15 (permalink)  
Antiguo 15/03/2010, 07:38
 
Fecha de Ingreso: febrero-2010
Mensajes: 63
Antigüedad: 14 años, 2 meses
Puntos: 0
Respuesta: pasar valor metido en campo a una variable

muchisimas gracias eso era lo que queria, ahora me surge otra duda que es la de como guardar estos datos, ya que el numero de campos puede variar segun el numero de ingredientes, habia pensado en meterlo todo en un solo campo como texto, que os parece ?


gracias y salu2
  #16 (permalink)  
Antiguo 15/03/2010, 08:01
Avatar de jmdz  
Fecha de Ingreso: marzo-2010
Ubicación: ¿Acá?
Mensajes: 54
Antigüedad: 14 años, 1 mes
Puntos: 2
Respuesta: pasar valor metido en campo a una variable

En una base de datos yo usaría dos tablas (o tal vez tres), una para los datos de la receta, otra para los ingredientes (y la tercera para el procedimiento). En la segunda (y en la tercera) incluiría un campo extra que sería el id de la receta en su tabla.

Lo de guardar los ingredientes (y el procedimiento) en un solo campo solo sirve si después no vas a tener que volver a separarlo, si fuera así: primero gastas recursos en concatenarlo y después vas a volver a gastar recursos para parsearlo. Si los pedís (al usuario) separados, sería mejor mantenerlos así.

Saludos.
  #17 (permalink)  
Antiguo 23/03/2010, 15:33
 
Fecha de Ingreso: febrero-2010
Mensajes: 63
Antigüedad: 14 años, 2 meses
Puntos: 0
De acuerdo Respuesta: pasar valor metido en campo a una variable

tengo un problemilla a la hora de pillar los datos y es que soy capaz de generar los campos pero no se porque no puedo coger los valores de ellos, me dice que la variable no esta creada, os pongo el codigo.


Este es el codigo que genera los campos dentro de un formulario de una receta que despues se guardara en la base de datos.
he utilizado 2 formularios uno para crear los campos y el otro es el de la receta, asi cuando el usuario carga la pagina lo primero que hace es introducir el numero de ingredientes que desea añadir a la receta y se ejecutara el siguiente codigo y cuyo resultado se mostrara en un iframe que he puesto dentro del formulario de la receta:

[HIGHLIGHT="PHP"]
Código PHP:
<?php
session_start
();
 if (isset(
$_GET['num_campos'])){
     
      
 
$cont=($_GET['num_campos']);

 }

 for (
$i=1;$i<=$cont;$i++){ ?>
 


<input type="text" name="ingrediente<?php echo"_$i"?>"/>
<input type="text" name="cantidad<?php echo"_$i"?>"/>
<select  name="medida<?php echo "_$i"?>" >
          <option value='g' >g(gramos)</option>
          <option value='Kq' >Kg (kilos)</option> 
    
          </select>
 

          <br/>

   <?php }
   
    
$_SESSION['cont']=$cont;
   
?>

y este que tengo aqui el que se supone que me tiene que meter los valores en un array una vez enviado el formulario de la receta:

Código PHP:
$contador=$_SESSION['cont'];

for (
$i=1;$i<=$contador;$i++){
        
$ingrediente[$i]=$_POST["ingrediente_$i"];
        
$cantidad[$i]=$_POST["cantidad_$i"];
        
$medida[$i]=$_POST["medida_$i"];
            
        echo 
"$ingrediente[$i]";
    } 
pero no lo hace y me sale este error (con $i=1):

Undefined index: ingrediente_1



gracias y salu2

Última edición por txin; 23/03/2010 a las 16:29

Etiquetas: pasar, variables, campos
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 17:18.