Foros del Web » Programando para Internet » PHP »

Recuperar por post campos dinamicos

Estas en el tema de Recuperar por post campos dinamicos en el foro de PHP en Foros del Web. Hola comunidad muy buenos dias. Estoy hace un rato con esto y no lo puedo resolver. Vi post parecidos pero ninguno exactamente igual. Estoy generando ...
  #1 (permalink)  
Antiguo 04/12/2016, 14:56
 
Fecha de Ingreso: octubre-2012
Mensajes: 202
Antigüedad: 11 años, 6 meses
Puntos: 0
Recuperar por post campos dinamicos

Hola comunidad muy buenos dias. Estoy hace un rato con esto y no lo puedo resolver. Vi post parecidos pero ninguno exactamente igual.

Estoy generando unos campos dinamicamiente:
Código PHP:
$i=1;
while($row= $actividad->fetch_assoc()){
    $id_actividad=$row["ID_ACTIVIDAD"];
    $consigna=$row["CONSIGNA"];
    $observaciones=$row["OBSERVACIONES"];
    $type_form=$row["TIPO_CAMPO"];
    
    echo("<p>".$i.") ".$consigna."</p>");
    if(isset($observaciones) && !empty($observaciones)){
        echo("<span class='card-title black-text'>Observaciones</span>");
        echo("<p>".$observaciones."</p>");    
    }
    ?>
    <div class="row">
      <form class="col s12">
        <div class="row">
          <div class="input-field col s12">
            <i class="material-icons prefix">mode_edit</i>
            <textarea id="textarea<?php echo($id_actividad)?>" name="textarea<?php echo($id_actividad)?>" class="materialize-textarea"></textarea>
            <label for="textarea<?php echo($id_actividad)?>">Textarea</label>
          </div>
        </div>
      </form>
    </div> 
    <?php    
    $i
++;
}
Pero lamentablente cuando los quiero recuperar me recupera siempre solo el primero:

Código PHP:
if(isset($_POST['presentar'])){
    while(
$row$actividad->fetch_assoc()){
        
$id_actividad=$row["ID_ACTIVIDAD"];
        
$campo_actividad $_POST["textarea".$id_actividad];
        echo(
$campo_actividad."<br>");
        }


Última edición por jmm87; 04/12/2016 a las 15:31
  #2 (permalink)  
Antiguo 04/12/2016, 16:16
alvaro_trewhela
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Recuperar por post campos dinamicos

Me puedes mostar que haces con la variable: $actividad

Y no estoy entendiendo nada tu html.

Por buena práctica no uses paréntesis en echo

echo ("hola"); es lo mismo que echo "hola";

Me puedes explicar directamente que quieres.

Saludos.
  #3 (permalink)  
Antiguo 04/12/2016, 16:25
 
Fecha de Ingreso: octubre-2012
Mensajes: 202
Antigüedad: 11 años, 6 meses
Puntos: 0
Respuesta: Recuperar por post campos dinamicos

Cita:
Iniciado por alvaro_trewhela Ver Mensaje
Me puedes mostar que haces con la variable: $actividad

Y no estoy entendiendo nada tu html.

Por buena práctica no uses paréntesis en echo

echo ("hola"); es lo mismo que echo "hola";

Me puedes explicar directamente que quieres.

Saludos.
Hola muy buenos dias. Tomo lo de los parentesis.
Te resumo el codigo en lo importante y te explico asi es mas visible
Código PHP:
<?php
while($row$actividad->fetch_assoc()){
    
$id_actividad=$row["ID_ACTIVIDAD"];
   
?> 
    <textarea id="textarea<?php echo($id_actividad)?>" name="textarea<?php echo($id_actividad)?>" class="materialize-textarea"></textarea>
    <?php    
    
}
?>
recorro una tabla con actividades que obviamente no se cuantas son de antemano y voy generando de manera dinamica campos TEXTAREA asignandole el nombre
"TEXTAREA".$id_actividad

Desde el inspector del navegador veo q los campos los genera perfecto y con los nombres correspondientes:

Código PHP:
    <textarea name="textarea1">
<
textarea name="textarea2">
<
textarea name="textarea3"
etc..

pero cuando quiero recuperar por post las variables solo me trae el primer texarea que imprimo.

Código PHP:
if(isset($_POST['presentar'])){
    while(
$row$actividad->fetch_assoc()){
        
$id_actividad=$row["ID_ACTIVIDAD"];
        
$campo_actividad $_POST["textarea".$id_actividad];
        echo(
$campo_actividad."<br>");
        }

presentar es el name de mi boton SUBMIT del form

Espero haber sido claro
  #4 (permalink)  
Antiguo 04/12/2016, 16:38
alvaro_trewhela
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Recuperar por post campos dinamicos

Todo depende de:

$row= $actividad->fetch_assoc()

me puedes mostrar el query $actividad porfavor porque lo más seguro es que te este resultando solo una fila.
  #5 (permalink)  
Antiguo 04/12/2016, 16:46
 
Fecha de Ingreso: octubre-2012
Mensajes: 202
Antigüedad: 11 años, 6 meses
Puntos: 0
Respuesta: Recuperar por post campos dinamicos

Cita:
Iniciado por alvaro_trewhela Ver Mensaje
Todo depende de:

$row= $actividad->fetch_assoc()

me puedes mostrar el query $actividad porfavor porque lo más seguro es que te este resultando solo una fila.
No. Ese no es el problema porque esta devolviendo 3 registros. Igual te lo muestros
Código HTML:
$actividad= $con->query("SELECT * FROM actividad
	                           WHERE ID_MODULO=$id");
Y me devuelve este error cuando hago el submit

Notice: Undefined index: textarea15 in C:\xampp\htdocs\sitios\nacer\15112016\actualizacio n.php on line 41
Código HTML:
Line 41:
$campo_actividad = $_POST["textarea".$id_actividad];
Notice: Undefined index: textarea16 in C:\xampp\htdocs\sitios\nacer\15112016\actualizacio n.php on line 41
Código HTML:
Line 41:
$campo_actividad = $_POST["textarea".$id_actividad];
En resumen entra las 3 veces en el while pero solo me recupera la primera vez que entra el campos que envio por post. En este ejemplo si lo miro por inspector me esta imprimiendo en el html:
textarea14
textarea15
textarea16

textarea14 lo recupera y el 15 y el 16 dice que no existe

Última edición por jmm87; 04/12/2016 a las 17:00
  #6 (permalink)  
Antiguo 05/12/2016, 07:26
 
Fecha de Ingreso: octubre-2010
Ubicación: España
Mensajes: 1.007
Antigüedad: 13 años, 6 meses
Puntos: 123
Respuesta: Recuperar por post campos dinamicos

Lo más probable es que no se estén enviando esos textarea, por eso cuando intentas recuperarlo no existen.
¿ por qué no se están enviando ?
Pues por qué según veo en tu html cada textarea esta dentro de un form independiente, no veo donde tienes el Submit o si lo haces mediante js. Pero para que se envíen todos los textarea deben pertenecer al mismo form o hacer el trabajo de recorrer todos los form y sus textarea con js y que este los envie.

Yo realmente lo haría de otra forma, enviaría los textarea como Array, pasando el id como clave.

Es decir:
Código HTML:
Ver original
  1. <textarea name="textarea[id_del_textarea]">
De todas formas como lo hagas es irrelevante, para resolver tu problema, pues creo que es la estructura de tu html lo que falla.
__________________
Unset($vida['malRollo']);

Etiquetas: campos, dinamicos, post
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:51.