PHP - Problema al enviar valor de un combobox y mysql a otra página

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

Problema al enviar valor de un combobox y mysql a otra página

Publicado por jose (18 intervenciones) el 20/08/2020 14:07:34
Buenas,

Estoy creando una página de control de gastos de viaje para mi, intento que através de un combobox que recoge datos de un campo de una BBDD de mysql, lo envíe a otra página que con un GET pueda realizar un select where con el valor del campo que se ha enviado desde la página inicial.

El problema que veo es que no se está enviando el valor del campo, no se el porque. El código es el que utilizo para eliminar registro, el cual funciona correctamente.

Este es el código de la página que contiene el combobox:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<form name="formulario" method="POST" enctype="multipart/form-data">
<br>
    Ver viaje:
    <select name="tipo" >
      <option value="0">Selecciona</option>
      <?php
      require("pages/conn/connection.php");
        $query = "select DISTINCTROW viaje_nombre from viaje";
        $result = mysqli_query($conn,$query);
        while ($row=$result->fetch_assoc()) {
            echo '<option value="'.$row['id'].'">'.$row['viaje_nombre'].'</option>';
        }
 
      ?>
 
    </select>
      <!--<input class="button" type="submit" name="submit" value="Ir" />-->
      <a class="boton_eliminar" href="gastos.php?Reg=<?php echo $row['viaje_nombre']; ?>">Ir</a>
 
  </form>

Este es parte del código que recibe el valor:

1
2
3
4
5
6
7
require("../conn/connection.php");
      if(isset($_GET['Reg'])){
 
      $Reg = $_GET['Reg'];
                $query_paginador = mysqli_query($conn,"Select count(*) as registros_totales from viaje where viaje_nombre = $Reg");
                $result_paginador = mysqli_fetch_array($query_paginador);
                $total_registro = $result_paginador['registros_totales'];
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 Fabian
Val: 166
Ha disminuido su posición en 2 puestos en PHP (en relación al último mes)
Gráfica de PHP

Problema al enviar valor de un combobox y mysql a otra página

Publicado por Fabian (40 intervenciones) el 20/08/2020 14:12:48
el error me parece que está aca:
1
<form name="formulario" method="POST" enctype="multipart/form-data">

estas mandando por metodo post y en la pagina que recibe los datos los estas capturando con $_GET

reemplazá la linea por esto y fijate si funciona
1
<form name="formulario" method="GET" enctype="multipart/form-data">
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 jose
Val: 52
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Problema al enviar valor de un combobox y mysql a otra página

Publicado por jose (18 intervenciones) el 20/08/2020 14:25:44
Hola Fabian,

Sigue sin funcionar.
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 Fabian
Val: 166
Ha disminuido su posición en 2 puestos en PHP (en relación al último mes)
Gráfica de PHP

Problema al enviar valor de un combobox y mysql a otra página

Publicado por Fabian (40 intervenciones) el 20/08/2020 14:41:10
Cuando decis que no te está enviando el Valor del campo, te estas refiriendo al $row['id'] o al $row['viaje_nombre']?
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 jose
Val: 52
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Problema al enviar valor de un combobox y mysql a otra página

Publicado por jose (18 intervenciones) el 20/08/2020 14:56:31
Hola Fabian,

No quiero que elimine, La clase del CSS "boton_eliminar" la he aprovechado para utlizarlo con cualquier botón.

Lo que quiero es desde un formulario recoga los valores de un campo, en este caso es el nombre del viaje.

Los campos son nombre_viaje, cantidad, fecha, de, tipo.

En la página cuando elijo el nombre del viaje esta se traslade a otra página que sólo me dejará ver los datos de ese viaje.

Te expongo el código del formulario y de la página que recoge el dato del formulario.

Espero te valga.

### formulario

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<form name="formulario" method="POST" enctype="multipart/form-data">
  <br>
      Ver viaje:
      <select name="tipo" >
        <option value="0">Selecciona</option>
 
        <?php
          require("pages/conn/connection.php");
          $query = "select DISTINCTROW viaje_nombre from viaje";
          $result = mysqli_query($conn,$query);
          while ($row=$result->fetch_assoc()) {
              echo '<option value="'.$row['id'].'">'.$row['viaje_nombre'].'</option>';
          }
        ?>
 
      </select>
        <!--<input class="button" type="submit" name="submit" value="Ir" />-->
        <a class="boton_eliminar" href="gastos.php?Reg=<?php echo $row['viaje_nombre']; ?>">Ir</a>
 
</form>

##### Tabla de 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
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
<table>
        <tbody>
            <tr>
 
                <th>Viaje</th>
                <th>Cantidad</th>
                <th>Fecha</th>
                <th>De</th>
                <th>Tipo</th>
      <th></th>
 
            </tr>
            <?php
            //paginador
            require("../conn/connection.php");
    if(isset($_GET['Reg'])){
 
    $Reg = $_GET['Reg'];
            $query_paginador = mysqli_query($conn,"Select count(*) as registros_totales from viaje where viaje_nombre = $Reg");
            $result_paginador = mysqli_fetch_array($query_paginador);
            $total_registro = $result_paginador['registros_totales'];
 
 
 
            if (isset($_POST["submit"])) {
                $num_register = $_POST["num_register"];
                $por_pagina = $num_register;
            }else{
                $por_pagina = 50;
            }
 
 
            if(empty($_GET['pagina'])){
                $pagina = 1;
            }else{
                $pagina = $_GET['pagina'];
            }
 
            $desde = ($pagina-1) * $por_pagina;
            $total_paginas = ceil($total_registro / $por_pagina);
 
 
                //$query="Select * from recibos";
                $query="Select {$query_total} from viaje order by fecha asc LIMIT $desde,$por_pagina  where viaje_nombre = $Reg";
                $result = mysqli_query($conn,$query);
                $count_rows = mysqli_num_rows($result);
 
                while($row=$result->fetch_assoc()){
            ?>
            <tr>
    <td><?php echo $row['viaje_nombre']; ?></td>
            <td><?php echo $row['cantidad']; ?></td>
            <td><?php echo $row['fecha']; ?></td>
            <td><?php echo $row['de']; ?></td>
          <td><?php echo $row['tipo']; ?>
 
 
            <!--<td><a href="pages/edit.php?GetID=<?php echo $row['tabla_index']; ?> ">Editar</a></td>-->
            <td><a class="boton_eliminar" href="del_register.php?Del=<?php echo $row['id']; ?>" onclick="return pregunta()">Eliminar</a></td>
            <!--<td><a class="boton_eliminar" href="../../upload/<?php echo $row['doc']; ?>" download >Download</a></td>-->
 
    </tr>
            <?php } ?>
            </tbody>
 
            <tfoot>
                <tr><td colspan="1"><center><b>Total<br>
                <?php $query_gasto="SELECT SUM(cantidad) as total FROM viaje and viaje_nombre= $Reg";
            $result_gasto = mysqli_query($conn,$query_gasto);
                      $row=mysqli_fetch_assoc($result_gasto);
                      echo $row['total'].' €';   ?>
                </b></center></td>
      <td colspan="2"><center><b>Comida<br>
                <?php $query_gasto="SELECT SUM(cantidad) as total_comida FROM viaje WHERE tipo='Comida' and viaje_nombre= $Reg";
            $result_gasto = mysqli_query($conn,$query_gasto);
                      $row=mysqli_fetch_assoc($result_gasto);
                      echo $row['total_comida'].' €';   ?>
                </b></center></td>
      <td colspan="2"><center><b>Combustible<br>
                <?php $query_gasto="SELECT SUM(cantidad) as total_combustible FROM viaje WHERE tipo='Combustible' and viaje_nombre= $Reg";
            $result_gasto = mysqli_query($conn,$query_gasto);
                      $row=mysqli_fetch_assoc($result_gasto);
                      echo $row['total_combustible'].' €';   ?>
                </b></center></td>
      <td colspan="1"><center><b>Alojamiento<br>
      <?php $query_gasto="SELECT SUM(cantidad) as total_alojamiento FROM viaje WHERE tipo='Alojamiento' and viaje_nombre= $Reg ";
            $result_gasto = mysqli_query($conn,$query_gasto);
            $row=mysqli_fetch_assoc($result_gasto);
            if ($row['total_alojamiento'] > 0) {
 
              echo $row['total_alojamiento'].' €';
            }else{
              echo "0 €";
            }
      }
?>
                <!--<td colspan="1"><center><b>Registros totales : <?php echo $count_rows;  ?></b></center></td></tr>-->
 
                </b></center></td>
 
 
            </tfoot>
 
</table>

Gracias,
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 Fabian
Val: 166
Ha disminuido su posición en 2 puestos en PHP (en relación al último mes)
Gráfica de PHP

Problema al enviar valor de un combobox y mysql a otra página

Publicado por Fabian (40 intervenciones) el 20/08/2020 15:14:43
en:

1
$query_paginador = mysqli_query($conn,"Select count(*) as registros_totales from viaje where viaje_nombre=$Reg");

no es la manera de introducir la variable $Reg en el query, lo correcto sería:

1
$query_paginador = mysqli_query($conn,"Select count(*) as registros_totales from viaje where viaje_nombre = '".$Reg."'");
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 jose
Val: 52
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Problema al enviar valor de un combobox y mysql a otra página

Publicado por jose (18 intervenciones) el 20/08/2020 16:04:18
Tal y como me comentas era como lo dejé en al escribir el código y como lo tengo, lo he dejado como me indicas y el problema persiste.

El problema es que no envía el valor que necesito a la URL. Como ves en la url falta el valor que se recoje del combobox

https://dominio.com/path/file.php?Reg=
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 Fabian
Val: 166
Ha disminuido su posición en 2 puestos en PHP (en relación al último mes)
Gráfica de PHP

Problema al enviar valor de un combobox y mysql a otra página

Publicado por Fabian (40 intervenciones) el 20/08/2020 16:50:07
Primero: Agregá un Id a select:

1
<select id="tipo" name="tipo" >

Segundo: Creá esta función en javascript en el <head>
1
2
3
4
5
6
7
8
9
10
<script>
 
function capturar(){
var sel = document.getElementById("tipo");
var text= sel.options[sel.selectedIndex].text;
var url="gastos.php?Reg="+text;
return url;
}
 
<script>

y esta función la pones en:
1
<a class="boton_eliminar" href="javascript:capturar()">Ir</a>
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 jose
Val: 52
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Problema al enviar valor de un combobox y mysql a otra página

Publicado por jose (18 intervenciones) el 20/08/2020 16:50:34
Hola Fabian,

He probado el siguiente cambio. En vez de recoger el dato desde mysql.
1
2
3
<a class="boton_eliminar" href="gastos.php?Reg=<?php echo $row['viaje_nombre']; ?>">Ir</a>
 
</form>

Lo he querido recoger desde el propio select. Aún así tengo le mismo problema. Veo la página pero sólo las tablas.

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
<form name="formulario" method="POST" enctype="multipart/form-data">
    <br>
        Ver viaje:
        <select name="tipo" >
          <option value="0">Selecciona</option>
 
          <?php
            require("pages/conn/connection.php");
            $query = "select DISTINCTROW viaje_nombre from viaje";
            $result = mysqli_query($conn,$query);
            while ($row=$result->fetch_assoc()) {
                echo '<option value="'.$row['id'].'">'.$row['viaje_nombre'].'</option>';
            }
          ?>
 
        </select>
          <input class="button" type="submit" name="submit" value="Ir" />
 
      </form>
      <?php
        if(isset($_POST['submit'])){
            $valor = $_POST['tipo'];
            header("location:pages/viajes/gastos.php?Reg=$valor");
      }
      ?>

Pero vuelve a colocar la url sin el valor del select
1
https://joserodriguezan.synology.me/viajes/pages/viajes/gastos.php?Reg=

Si a esta url le añado manualmente el valor
1
https://joserodriguezan.synology.me/viajes/pages/viajes/gastos.php?Reg=Norte españa
funciona correctamente.

Para comprobar que funciona correctamente, lo que he hecho es modificar el valor $Reg por el valor del campo manualmente, dando los datos correctos.

1
2
$Reg = $_GET['Reg'];
//$Reg = "Norte españa";

El problema es que no envía el valor a la URL. He estado revisando foros, webs y youtube, más otras páginas que he tengo de eliminación de registros y lo veo correcto.
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 Fabian
Val: 166
Ha disminuido su posición en 2 puestos en PHP (en relación al último mes)
Gráfica de PHP

Problema al enviar valor de un combobox y mysql a otra página

Publicado por Fabian (40 intervenciones) el 20/08/2020 16:55:12
Primero: Agregá un Id a select:

1
<select id="tipo" name="tipo" >

Segundo: Creá esta función en javascript en el <head>
1
2
3
4
5
6
7
8
9
10
<script>
 
function capturar(){
var sel = document.getElementById("tipo");
var text= sel.options[sel.selectedIndex].text;
var url="gastos.php?Reg="+text;
return url;
}
 
<script>

y esta función la pones en:
1
<a class="boton_eliminar" href="javascript:capturar()">Ir</a>

De esta manera, estás trabajando del lado frontend para capturar mediante javascript el texto seleccionado en el combo.
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 Fabian
Val: 166
Ha disminuido su posición en 2 puestos en PHP (en relación al último mes)
Gráfica de PHP

Problema al enviar valor de un combobox y mysql a otra página

Publicado por Fabian (40 intervenciones) el 20/08/2020 17:19:37
si no te funciona cambiá la funcion así:

1
2
3
4
5
6
function capturar(){
var sel = document.getElementById("tipo");
var text= sel.options[sel.selectedIndex].text;
var url="gastos.php?Reg="+text;
window.location.href = url;
}
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 jose
Val: 52
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Problema al enviar valor de un combobox y mysql a otra página

Publicado por jose (18 intervenciones) el 20/08/2020 17:19:52
Gracias Fabian,

Esto está mucho mejor. Pero resulta que el valor no lo pone en la barra de url sino en el cuerpo del navegador.

Con esto me vale, te lo agradezco, buscaré la forma de hacer que lo vea como una url.

Gracias por el esfuerzo.
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 Fabian
Val: 166
Ha disminuido su posición en 2 puestos en PHP (en relación al último mes)
Gráfica de PHP

Problema al enviar valor de un combobox y mysql a otra página

Publicado por Fabian (40 intervenciones) el 20/08/2020 17:23:59
como te dihe entonces reemplaza esa función por esta:
1
2
3
4
5
6
function capturar(){
var sel = document.getElementById("tipo");
var text= sel.options[sel.selectedIndex].text;
var url="gastos.php?Reg="+text;
window.location.href = url;
}
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 jose
Val: 52
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Problema al enviar valor de un combobox y mysql a otra página

Publicado por jose (18 intervenciones) el 20/08/2020 17:33:31
Funcionó

Muchas gracias Fabian, sin tu ayuda poco hubiese hecho.
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 Fabian
Val: 166
Ha disminuido su posición en 2 puestos en PHP (en relación al último mes)
Gráfica de PHP

Problema al enviar valor de un combobox y mysql a otra página

Publicado por Fabian (40 intervenciones) el 20/08/2020 17:55:19
te recomiendo nunca poner una url de tu pagina en un post, trata de eliminarla porque te pueden hacer un desastre, borrarte datos, agregar datos.
Vos ingresastes: https://joserodriguezan.synology.me/v........
trata de eliminarla del post. Si no podes, cambiá el nombre del archivo gastos.php por otro así no pueden ingresar ahí.
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 jose
Val: 52
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Problema al enviar valor de un combobox y mysql a otra página

Publicado por jose (18 intervenciones) el 20/08/2020 21:04:04
Cierto no me dí cuenta de eso. Muchas gracias Fabian
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