PHP - metodo post

 
Vista:
sin imagen de perfil
Val: 70
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

metodo post

Publicado por gabriel (24 intervenciones) el 09/06/2020 23:41:36
Hola, soy muy novato en php asi que espero poder explicar mi problema y que me puedan dar una mano.
Estoy creando un formulario con varios input y un select con varias opciones, el formulario es para busqueda en una base de datos, segun el input que rellene es el campo al cual consulta en la base de datos, por lo que en todos los casos tengo la ejecucion de sentencias php en el mismo archivo, por lo que en el action del form le pongo <?php echo htmlspecialchars($_SERVER['PHP_SELF']); ?>. Hasta ahi funciona todo bien, ahora si la consulta es por una opcion del select, debo redirigir a otra pagina, aca se me presenta el problema, sino redirijo a ninguna pagina y hago un print_r($_POST) me muestra los datos que envio con el $_POST, ahora si redirijo a la otra pagina y en la otra pagina hago el print_r($_POST) me dice que el array esta vacio. Ahora si en el form en vez de poner <?php echo htmlspecialchars($_SERVER['PHP_SELF']); ?> le pongo el nombre de la otra pagina a la que redirijo ahi si me muestra el print_r($_POST) pero esta opcion me invalida las consultas con los input.
Espero haber sido claro y que alguien me pueda explicar lo que estoy haciendo mal.
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 javier
Val: 1.772
Plata
Ha aumentado 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

metodo post

Publicado por javier (474 intervenciones) el 10/06/2020 08:11:57
Hola,

eso te pasa porque al redirigir estas dejando de enviar la variables por POST y las pierdes.

enseña el codigo de como tienes el form

saludos
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
sin imagen de perfil
Val: 70
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

metodo post

Publicado por gabriel (24 intervenciones) el 10/06/2020 15:08:31
Les paso el codigo del archivo index.php, el codigo de listado_por_oficinas.php es irrelevante ya que el problema radica que llega vacio el array $_POST.

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
if($_SERVER['REQUEST_METHOD'] == 'POST') {
	if (!empty($_POST['id'])){
		$conexion = conexion();
		$ficha = buscarEquipoId($conexion, $_POST['id']);
		if ($ficha == false){
			error("inexistente");
		}
	}
	if (!empty($_POST['patrimonio'])){
		$conexion = conexion();
		$ficha = buscarEquipoPatrimonio($conexion, $_POST['patrimonio']);
		if ($ficha == false){
			error("inexistente");
		}
	}
	if (!empty($_POST['interno'])){
		$conexion = conexion();
		$ficha = buscarEquipoInterno($conexion, $_POST['interno']);
		if ($ficha == false){
			error("inexistente");
		}
	}
	if (!empty($_POST['ip1']) && !empty($_POST['ip2'])){
		$conexion = conexion();
		$ficha = buscarEquipoIp($conexion, $_POST['ip1'], $_POST['ip2']);
		if ($ficha == false){
			error("inexistente");
		}
	}
	if (!empty($_POST['oficina'])){
		header('location: listado_por_oficinas.php');
	}
}
?>
 
 
 
<form action="<?php echo htmlspecialchars($_SERVER['PHP_SELF']); ?>" method="POST">
<div class="buscador">
	<input class="caja_id caja_ingreso" type="text" placeholder="ID a buscar" name="id">
 
	<?php
		$conexion = conexion();
		$oficinas = buscarOficinas($conexion);
	?>
 
	<select class="caja_ingreso" name="oficina" id="oficina">
		<?php foreach ($oficinas as $oficina): ?>
		 	<option value="<?php echo $oficina['OFICINA']; ?>" name="oficina"><?php echo $oficina['OFICINA']; ?></option>
		<?php endforeach ?>
	</select>
 
	<input class="caja_ingreso caja_id" type="text" placeholder="Patrimonio" name="patrimonio">
	<input class="caja_ingreso caja_interno" type="text" placeholder="Interno" name="interno">
	<label>172-16-</label>
	<input class="caja_ingreso caja_ip" type="text" placeholder="IP C" name="ip1">
	<input class="caja_ingreso caja_ip" type="text" placeholder="IP D" name="ip2">
	<input type="submit" value="submit" name="submit">
 
</div>
<hr>
<div class="container-fluid">
	<div class="row">
		<p class="col-12">ID: <?php echo (!empty($_POST['submit']) || $ficha != false) ? $ficha['ID_EQUIPO'] : '-'; ?></p>
		<p class="col-12">OFICINA:  <?php echo (!empty($_POST['submit']) || $ficha != false) ? $ficha['OFICINA'] : '-'; ?></p>
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 javier
Val: 1.772
Plata
Ha aumentado 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

metodo post

Publicado por javier (474 intervenciones) el 11/06/2020 08:37:33
hola,

tu prolblema es cuando rediriges aqui a la pagina listado_por_oficinas.php, no?

1
2
3
if (!empty($_POST['oficina'])){
	header('location: listado_por_oficinas.php');
}

que no te llega el array POST
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
sin imagen de perfil
Val: 70
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

metodo post

Publicado por gabriel (24 intervenciones) el 12/06/2020 20:58:51
Si, cuando voy a la otra pagina me llega el array vacio
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
sin imagen de perfil
Val: 48
Ha aumentado su posición en 3 puestos en PHP (en relación al último mes)
Gráfica de PHP

metodo post

Publicado por ernesto (12 intervenciones) el 13/06/2020 00:19:48
Normal, enviarlas por GET en el enlace de redirigir
Y las recoges en el otro archivo con GET por su puesto
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
sin imagen de perfil
Val: 70
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

metodo post

Publicado por gabriel (24 intervenciones) el 13/06/2020 15:41:11
Gracias Ernesto, lo hice de esa forma al final
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 javier
Val: 1.772
Plata
Ha aumentado 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

metodo post

Publicado por javier (474 intervenciones) el 13/06/2020 08:00:36
es normal, ya no envias las variables por POST al redirigir, habrias de pasarlas en el enlace de redireccion asi:

1
2
3
4
5
6
7
8
if (!empty($_POST['oficina'])){
	header('location: listado_por_oficinas.php?variable1=algo&variable2=algo&variable3=algo');
}
 
 
//y recogerlas con GET
 
$variable1 = $_GET['variable1'];

O usar variables de sesion para mantener las variables de pagina en pagina sin hacer falta enviarlas por POST nni GET

saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar
sin imagen de perfil
Val: 70
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

metodo post

Publicado por gabriel (24 intervenciones) el 13/06/2020 15:55:54
Gracias Javier, logre resolverlo con GET, había entendido mal cuando autoaprendi, creía que si el formulario usaba el método POST despues, en el mismo formulario, no podía usar el método GET. Ahora, Javier, te hago una consulta que me surgió con tu respuesta: Como seria usar las variables de sesión y como rescatarlas desde cada formulario?? si es mucho lio la explicacion y tenes algún link que me ayude te lo agradecería. Mil gracias por todas las respuestas.
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 javier
Val: 1.772
Plata
Ha aumentado 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

metodo post

Publicado por javier (474 intervenciones) el 13/06/2020 19:52:40
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
sin imagen de perfil
Val: 70
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

metodo post

Publicado por gabriel (24 intervenciones) el 15/06/2020 23:57:17
Mil gracias Javier, ya me pongo a leerlo. Gracias a todos los que se interesaron en mi problema. Saludos
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