PHP - El foreach no envía el valor del campo seleccionado

 
Vista:
Imágen de perfil de Xavi
Val: 52
Ha aumentado su posición en 4 puestos en PHP (en relación al último mes)
Gráfica de PHP

El foreach no envía el valor del campo seleccionado

Publicado por Xavi (27 intervenciones) el 05/04/2021 23:30:12
Buenas tardes, he hecho un foreach el cual muestra los datos de la tabla correctamente, el problema es que cuando quiero utilizar uno de esos datos mediante un botón, no me envía el valor del dato seleccionado si no el valor del primer registro en la tabla.

He hecho esto muchas veces y no he tenido problemas, lo más seguro es que haya algo que se me está pasando por alto y no lo veo.

Este es el foreach que muestra los datos;
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
42
43
44
45
46
47
48
49
50
51
52
53
<?php
$bills_query= "SELECT * FROM bills ORDER by bills_id DESC";
$bills= mysqli_query($connection, $bills_query);?>
 
<div class="container-fluid">
  <div class="row">
    <table class="table striped">
      <thead>
        <tr>
          <th>Factura N°</th>
          <th>Fecha<strong></th>
          <th>Cliente</th>
          <th>Vendedor</th>
          <th>Monto</th>
        </tr>
      </thead>
 
<?php
  foreach($bills as $bill):
    $bill_id=$bill['bills_id'];
    $bill_number= $bill['bill_number'];
    $bill_business= $bill['bill_2_client'];
    $bill_start= $bill['bill_start'];
    $bill_seller= $bill['bill_seller'];
    $bill_total= $bill['bill_total'];?>
 
      <tr>
        <td>
          <form
            action=""
            method="post">
 
            <button
              type="button"
              class="btn btn-success"
              data-toggle="modal"
              data-target="#exampleModalLong">
                <strong><em><?php echo $bill_number; ?></em></strong>
            </button>
        </td>
        <td><?php echo $bill_start; ?></td>
        <td><?php echo $bill_business; ?></td>
        <td><?php echo $bill_seller; ?></td>
        <td><?php echo $bill_total; ?></td>
          </form>
  </td>
       </tr>
 
 <?php endforeach?>
 
    </table>
  </div>
</div>

Cuando quiero utilizar la variable $bill_id obtenida de este foreach siempre me resulta en el id del primer registro, no en el que yo he seleccionado.

Si alguien me puede ayudar con esto, de antemano lo agradezco.
Saludos
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 Mauro
Val: 2.761
Oro
Ha aumentado 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

El foreach no envía el valor del campo seleccionado

Publicado por Mauro (1036 intervenciones) el 06/04/2021 13:56:42
Hola Xavi:

¿Te fijaste el código HTML generado? A simple vista parece correcto... no veo dónde estarías queriendo utilizar ese dato, ¿puede que haya algo de JavaScript que no estás mostrando aquí?
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
Imágen de perfil de Xavi
Val: 52
Ha aumentado su posición en 4 puestos en PHP (en relación al último mes)
Gráfica de PHP

El foreach no envía el valor del campo seleccionado

Publicado por Xavi (27 intervenciones) el 06/04/2021 15:02:01
Buenos días Mauro, de hecho excepto por el modal de bootstrap no tengo código html en alguna otra parte, tampoco he utilizado Javascript por eso es que me extraña tanto, ya había hecho esto cientos de veces y es la primera vez que me quedo estancado jajaja.

Acá es a donde quiero enviar el $bill_id para hacer otra consulta SQL y mostrar los datos de esa consulta en un modal:
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
42
43
44
45
46
47
48
49
50
51
52
53
54
<div class="modal fade" id="exampleModalLong" tabindex="-1" role="dialog" aria-labelledby="exampleModalLongTitle" aria-hidden="true">
  <div class="modal-dialog" role="document">
    <div class="modal-content">
      <div class="modal-header">
        <h5 class="modal-title" id="exampleModalLongTitle">Modal title</h5>
        <button type="button" class="close" data-dismiss="modal" aria-label="Close">
          <span aria-hidden="true">&times;</span>
        </button>
      </div>
      <div class="modal-body">
 
<?php
echo $bill_id;
$contents_query= "SELECT * FROM contents WHERE contents_2_bill= '$bill_id' ORDER by contents_id DESC";
$contents= mysqli_query($connection, $contents_query);
 
?>
<div class="container">
  <div class="row">
    <table class="table striped">
      <thead>
        <tr>
          <th>Código</th>
          <th>Descripción<strong></th>
          <th>Unidades</th>
          <th>Precio</th>
        </tr>
      </thead>
 
<?php
  foreach($contents as $content):
    $content_code= $content['description_code'];
    $content_description= $content['description'];
    $content_units= $content['units'];
    $content_price= $content['price'];?>
          <td><?php echo $content_code; ?></td>
          <td><?php echo $content_description; ?></td>
          <td><?php echo $content_units; ?></td>
          <td><?php echo $content_price; ?></td>
          </form>
        </tr>
 <?php endforeach?>
    </table>
  </div>
</div>
      </div>
 
<div class="modal-footer">
  <button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
  <button type="button" class="btn btn-primary">Save changes</button>
</div>
    </div>
  </div>
</div>

Siempre recibo el $bill_id del primer registro y no del que selecciono, lo he hecho de cientos de maneras distintas y no doy con el error.
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
Imágen de perfil de Xavi
Val: 52
Ha aumentado su posición en 4 puestos en PHP (en relación al último mes)
Gráfica de PHP

El foreach no envía el valor del campo seleccionado

Publicado por Xavi (27 intervenciones) el 06/04/2021 15:39:58
Ya conseguí el error por si a alguien más le ocurre, si en lugar de enviar la información al modal de bootstrap envío la información a otra página los datos se envía correctamente, de hecho los procesa en la misma página siempre y cuando el botón del submit no tenga como valor "button" si no "submit" y bootstrap no funciona con ese valor.
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