PHP - Recibir ID (variable) en POST

 
Vista:
sin imagen de perfil

Recibir ID (variable) en POST

Publicado por Raúl (1 intervención) el 03/03/2017 12:57:09
Buenos días.

Voy a intentar ser lo más claro posible con mi situación:

Estoy generando una tabla/lista de datos modificables con un bucle. Estos datos salen de un sql que imprime cada fila con una distinta ID hasta quedarse sin IDs.

Hasta aquí todo bien y correcto, ahora, como ya he dicho los valores de las otras celdas que no son la ID son modificables y luego tienen que enviarse de nuevo a la tabla con un update.

Como no tiene un numero exacto de filas no puedo hacer que recoja cada post y ya porque todos se enviarían con la misma ID y no podría recoger todas las filas. Así que le puse una id recurriendo a id=$ID."texto" por lo cual no puedo poner $_POST['$ID."texto"'] o algo similar.

Así que mi pregunta es:
Como envío por post filas de valores de un bucle generado según el nº de filas del sql?
O en el caso de ir bien encaminado como expresarlo para que funcione?


También he pensado que si es importante puedo poner una variable sin añadir texto al lado y ya tipo:

1
2
$res = $ID."texto";
id="<?php echo $res;?>"
Pero me quedo en el mismo problema, no puedo ponerle luego eso mismo al $_POST[''] o eso creo:

1
2
$res = $count."texto";
id="<?php echo $res;?>"

Al menos como lo planteo no :(


Os dejo una versión del código simplificado sin clases ni nada para que veáis que intento mejor.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
<table>
  <thead>
    <tr>
        <th>ID</th>
        <th>Alias</th>
    </tr>
  </thead>
  <tbody>
      <form action="updatedisp" method="post" >
            <?php $sql = "SELECT * FROM `conf` order by ID";
                   $result = $con->query($sql);
                   $count=0;
                   while($f = $result->fetch_assoc()) {
             ?>
            <tr>
                <td>
                    <?php echo $f['ID'];?>
                </td>
                <td>
                <div>
                    <input type="text" id="<?php echo $f['ID']."alias";?>" value="<?php echo $f['alias'];?>">
                    <label for="<?php echo $f['ID']."alias";?>"><?php echo $f['alias'];?></label>
                </div>
            </td>
           //DESPUES DE AQUI VAN MÁS COLUMNAS CON EL MISMO ESTILO
          </tr>
          <input class="oculto" id="count" type="text" value="<?php $count=$count+1; echo $count;?>">
          <?php
           }
           ?>
           <input name="Submit" type="submit" id="contact-submit"  value="ACTUALIZAR">
     </form> </tbody></table><br><br>
 
      <?php
            for($i=0;$i<$count;$i++){
                 $local="";
                 $local=$_POST[$i'alias'];    //ESTO NO SIRVE  
                echo $local;
            }
 
        ?>


Gracias por dedicarme vuestro tiempo.
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
Imágen de perfil de Alejandro
Val: 1.634
Plata
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Recibir ID (variable) en POST

Publicado por Alejandro (837 intervenciones) el 06/03/2017 15:47:31
  • Alejandro se encuentra ahora conectado en el
  • chat de PHP
Te dejo 2 ejemplos muy similares.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<form>
<table>
<tr><td><input type="text" name="A"/></td><td><input type="text" name="B"/></td></tr>
<tr><td><input type="text" name="A"/></td><td><input type="text" name="B"/></td></tr>
<tr><td><input type="text" name="A"/></td><td><input type="text" name="B"/></td></tr>
<tr><td><input type="text" name="A"/></td><td><input type="text" name="B"/></td></tr>
</table>
<input type="submit"/>
</form>
 
<?php
$nInputs = count($_POST[]); // 8
$nRows = $nInputs/2; // A y B son 2
for($i=0; $i<nRows){
$A= $_POST["A"][$i];
$B=$_POST["B"][$i];
echo $A."|".$B."</br>";
}
?>

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<form>
<table>
<tr><td><input type="text" name="A1"/></td><td><input type="text" name="B1"/></td></tr>
<tr><td><input type="text" name="A2"/></td><td><input type="text" name="B2"/></td></tr>
<tr><td><input type="text" name="A3"/></td><td><input type="text" name="B3"/></td></tr>
<tr><td><input type="text" name="A4"/></td><td><input type="text" name="B4"/></td></tr>
</table>
<input type="submit"/>
</form>
 
<?php
$nInputs = count($_POST[]); // 8
$nRows = $nInputs/2; // A y B son 2
for($i=1; $i<=nRows){
$A= $_POST["A".$i];
$B=$_POST["B".$i];
echo $A."|".$B."</br>";
}
?>
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar