Cómo extraer valor de variables dinámicas a través de Post

Estoy usando valores para enviar a la página siguiente a través del método de publicación. Los campos de tipo de entrada tienen nombres dinámicos que se crean así name="fob-$id". Ahora, cuando se envía por correo, hay de 4 a 5 variables, como fob-89, fob-29, fob-65, etc. ¿Cómo puedo asignar estos valores a una nueva variable?

NOTA: Sé qué números se adjuntarán con el llavero, por lo que no será un problema, el único problema al que me enfrento es cómo asignar estos valores a una variable.

$fob=$_POST['fob-$id'];

El código anterior no funciona. Gracias

preguntado el 12 de junio de 12 a las 09:06

¿Quieres asignar todos los valores a una variable? ¿O asignar todos los valores a múltiples variables? -

Si sabe qué números se adjuntarán, ¿por qué no $fob89=$_POST['fob-89']; etc? Tal vez pueda mostrarnos algún código y un ejemplo del comportamiento esperado.. -

Asignaré valores dentro de un bucle.... Fabrico: No sé qué valores se envían, estos valores se extraerán de la identificación de la sesión del usuario... por lo que "id" se extraerá de la base de datos y si la identificación es 23, entonces el la variable enviada sería fob-23, ¿cómo puedo hacer que "-23" sea dinámico? Solo quiero usar una variable que complete el número automáticamente... -

$fob=$_POST['fob-'.$id]; debería hacerlo, suponiendo $id se obtiene de la $_SESSION['id']. No estoy seguro de cómo quieres implementarlo en un bucle, supongo que sería mejor asignarlo a una matriz: $fob[$id]=$_POST['fob-'.$id]; -

Eso es exactamente lo que estaba buscando :) Muchas gracias: D -

3 Respuestas

La mejor manera sería nombrar sus campos HTML para que creen una matriz cuando se envíen de vuelta a PHP:

echo "<input type='text' name='fob[$id]' />";

Y luego en PHP puedes simplemente iterar sobre $_POST['fob']:

foreach ($_POST['fob'] as $id => $value) {
  // Do stuff
}

Respondido el 12 de junio de 12 a las 09:06

Según las actualizaciones de comentarios, asumiendo $id es un entero obtenido de la $_SESSION var, puede almacenarlo en una matriz:

$fob[$id] = $_POST['fob-' . $id];

Respondido el 12 de junio de 12 a las 09:06

En su lugar, debe usar una matriz en el nombre de las entradas. Como esto: name="fob[$id]"

Entonces puedes simplemente hacer un foreach($_POST["fob"] as $id => $value) para obtener los valores

Respondido el 12 de junio de 12 a las 09:06

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.