PHP - Modificar formulario con variables GET Y POST

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

Modificar formulario con variables GET Y POST

Publicado por pat (6 intervenciones) el 15/03/2020 02:31:58
Buenas a tod@s! tengo un problema hace unos días que no me deja avanzar... estoy haciendo un trabajo sobre una página web de hoteles.
En este punto lo que quiero es modificar una reserva. El problema está que para modificar dicha reserva envío 3 variables por GET a un ajax, el cual se encarga de recibir esas variables y pintar un formulario nuevo con los datos rellenos de esa reserva utilizando las variables.
Hasta ahí todo bien... pero cuando modifico algunos datos del formulario y le doy al botón de "modificar" parece que las variables pasadas por GET no las reconoce... y me da estos 3 errores

Notice: Undefined index: idH in C:\AD\Hoteles\Cliente\AjaxModificar.php on line 7

Notice: Undefined index: fechaIni in C:\AD\Hoteles\Cliente\AjaxModificar.php on line 8

Notice: Undefined index: fechaFin in C:\AD\Hoteles\Cliente\AjaxModificar.php on line 9

Ojalá podáis darme una solución... Muchas gracias de antemano!!!!

Adjunto código:

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
<?php
require_once("../Funciones/Confing.php");
session_name("hoteles");
session_start();
 
$dni=$_SESSION['dni'];
$idH=$_GET['idH'];
$fI=$_GET['fechaIni'];
$fF=$_GET['fechaFin'];
 
?><form class="panel3" method="POST" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>"><?php
    echo'<label>Seleccione nuevo hotel: </label>';
    echo "<br>";
    obtenerHoteles();
    echo "<div id=\"representacion\" name=\"hotel\"></div>";
    echo "<div id=\"representacion2\" name=\"habitacion\"></div>";
    ?><input type="hidden" name="idH" value= <?php $idH;?>><?php
    echo "<br>";
    echo "<label>Fecha de entrada: </label>";
    echo "<br>";
    ?><input class="campo" type="date" name="f1" value = <?php echo $fI=$_GET['fechaIni'];?>><?php
    ?><input type="hidden" name="fI" value= <?php $fI;?>><?php
    echo "<br><br>";
    echo "<label>Fecha de salida: </label>";
    echo "<br>";
    ?><input class="campo" type="date" name="f2" value = <?php echo $fF;?>><?php
    echo "<br><br>";
    echo "<label>Email: </label>";
    echo "<br>";
    ?><input class="campo" type="email" name="email" value = <?php echo $_SESSION["email"]?> readonly><?php
    echo "<br><br>";
    echo "<label>DNI: </label>";
    echo "<br>";
    ?><input class="campo" type="text" name="dni" value = <?php echo $_SESSION["dni"]?> readonly><?php
    echo "<br><br>";
    echo "<input class=\"enviar\" type=\"submit\" value=\"Modificar\">";
    echo "</form>";
echo "</div>";
 
if($_SERVER=="POST"){
 
    $idH=test_input($_REQUEST['idH']);
    $fI=test_input($_REQUEST['fI']);
    $habitacion=test_input($_REQUEST['habitacion']);
    $fecha1=test_input($_REQUEST['f1']);
    $fecha2=test_input($_REQUEST['f2']);
    $resultado=calcularDias($fecha1, $fecha2);
    $precio=obtenerPrecio($habitacion);
    $precioTotal=$precio*$resultado;
 
    modificar($dni, $idH, $fI, $habitacion, $precioTotal, $fecha1, $fecha2);
}
 
   print "<pre>"; print_r($_REQUEST); print "</pre>\n";
 
?>

________________________________________________

* El print al principio me muestra esto:

1
2
3
4
5
6
Array
(
    [fechaIni] => 2020-03-09
    [idH] => 20
    [fechaFin] => 2020-03-16
)

* Y al pulsar sobre el botón de modificar me muestra esto otro:

1
2
3
4
5
6
7
8
9
10
11
Array
(
    [hotel] => 19
    [habitacion] => 24
    [idH] =>
    [f1] => 2020-03-10
    [fI] =>
    [f2] => 2020-03-17
    [email] => mizquierdo22@gmail.com
    [dni] => 58962140N
)
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 Julio
Val: 2.007
Plata
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Modificar formulario con variables GET Y POST

Publicado por Julio (830 intervenciones) el 15/03/2020 09:30:05
Hola.

No he revisado a fondo el código, pero si dices que lanzas un formulario post y que ya no te reconoce las variables get, quizá es porque aquí:

1
<form class="panel3" method="POST" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>">

Estás lanzando el formulario con ese action y ahí no incluyes las variables get, con lo cual se pierden. Debes incluirle a ese action las variables get para que vuelva a enviarlas.

-----------------------------
Aprende la programación desde una perspectiva básica y simplista en Programación Básica
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: 11
Ha aumentado su posición en 16 puestos en PHP (en relación al último mes)
Gráfica de PHP

Modificar formulario con variables GET Y POST

Publicado por Pat (6 intervenciones) el 15/03/2020 15:49:47
Gracias por responder Julio, pero eso ya lo intenté y nada...
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 Julio
Val: 2.007
Plata
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Modificar formulario con variables GET Y POST

Publicado por Julio (830 intervenciones) el 15/03/2020 16:50:55
¿Qué intentaste exactamente?

-----------------------------
Aprende la programación desde una perspectiva básica y simplista en Programación Básica
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: 11
Ha aumentado su posición en 16 puestos en PHP (en relación al último mes)
Gráfica de PHP

Modificar formulario con variables GET Y POST

Publicado por Pat (6 intervenciones) el 15/03/2020 18:49:11
Metí las variables dentro del form, a esto te referías no?

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
<?php
require_once("../Funciones/Confing.php");
session_name("hoteles");
session_start();
 
?><form class="panel3" method="POST" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>"><?php
 
    $dni=$_SESSION['dni'];
    $idH=$_GET['idH'];
    $fI=$_GET['fechaIni'];
    $fF=$_GET['fechaFin'];
 
    echo'<label>Seleccione nuevo hotel: </label>';
    echo "<br>";
    obtenerHoteles();
    echo "<div id=\"representacion\" name=\"hotel\"></div>";
    echo "<div id=\"representacion2\" name=\"habitacion\"></div>";
    ?><input type="hidden" name="idH" value= <?php $idH;?>><?php
    echo "<br>";
    echo "<label>Fecha de entrada: </label>";
    echo "<br>";
    ?><input class="campo" type="date" name="f1" value = <?php echo $fI;?>><?php
    ?><input type="hidden" name="fI" value= <?php $fI;?>><?php
    echo "<br><br>";
    echo "<label>Fecha de salida: </label>";
    echo "<br>";
    ?><input class="campo" type="date" name="f2" value = <?php echo $fF;?>><?php
    echo "<br><br>";
    echo "<label>Email: </label>";
    echo "<br>";
    ?><input class="campo" type="email" name="email" value = <?php echo $_SESSION["email"]?> readonly><?php
    echo "<br><br>";
    echo "<label>DNI: </label>";
    echo "<br>";
    ?><input class="campo" type="text" name="dni" value = <?php echo $_SESSION["dni"]?> readonly><?php
    echo "<br><br>";
    echo "<input class=\"enviar\" type=\"submit\" value=\"Modificar\">";
    echo "</form>";
echo "</div>";
 
if($_SERVER=="POST"){
 
    $idH=test_input($_REQUEST['idH']);
    $fI=test_input($_REQUEST['fI']);
    $habitacion=test_input($_REQUEST['habitacion']);
    $fecha1=test_input($_REQUEST['f1']);
    $fecha2=test_input($_REQUEST['f2']);
    $resultado=calcularDias($fecha1, $fecha2);
    $precio=obtenerPrecio($habitacion);
    $precioTotal=$precio*$resultado;
 
    modificar($dni, $idH, $fI, $habitacion, $precioTotal, $fecha1, $fecha2);
}
 
    print "<pre>"; print_r($_REQUEST); print "</pre>\n";
?>
_______________________________________________

Y al pulsar sobre modificar lo mismo.... T.T

Notice: Undefined index: idH in C:\AD\Hoteles\Cliente\AjaxModificar.php on line 9

Notice: Undefined index: fechaIni in C:\AD\Hoteles\Cliente\AjaxModificar.php on line 10

Notice: Undefined index: fechaFin in C:\AD\Hoteles\Cliente\AjaxModificar.php on line 11
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 Julio
Val: 2.007
Plata
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Modificar formulario con variables GET Y POST

Publicado por Julio (830 intervenciones) el 15/03/2020 18:55:33
No no, las variables GET no se pasan así. Las variables GET van por la URL, por eso te puse la línea donde pones el action del form.

1
2
3
4
5
6
$urlAction = htmlspecialchars($_SERVER["PHP_SELF"]);
$urlAction .= '?idH=' . $_GET['idH'];
$urlAction .= '&fechaIni=' . $_GET['fechaIni'];
$urlAction .= '&fechaFin=' . $_GET['fechaFin'];
 
?><form class="panel3" method="POST" action="<?php echo $urlAction; ?>"><?php

¿Captas lo que hace? Es decir, si tú tienes una URL example.com?dni=12345, tendrás en $_GET['dni'] ese dato porque las variables get van por la URL. Así que si quieres que se mantengan y se envíen por get y no por post, tendrás que volverlas a pasar por la URL. Por tanto, tu action del formulario tendrá que ser la URL que quieres añadiéndole todas las variables get que tienes para así seguir teniéndolas allá donde vayas con el formulario.

-----------------------------
Aprende la programación desde una perspectiva básica y simplista en Programación Básica
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: 11
Ha aumentado su posición en 16 puestos en PHP (en relación al último mes)
Gráfica de PHP

Modificar formulario con variables GET Y POST

Publicado por pat (6 intervenciones) el 15/03/2020 19:21:56
Ohhhh que maquina!!! Muchas gracias Julio!!!!

ahora ya no me da ese error pero pasa algo raro... parece que sigue sin reconocerlas...

pd: Perdona mi torpeza que soy nueva en esto jiji

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
<?php
require_once("../Funciones/Confing.php");
session_name("hoteles");
session_start();
$dni=$_SESSION['dni'];
 
$urlAction = htmlspecialchars($_SERVER["PHP_SELF"]);
$urlAction .= '?idH=' . $_GET['idH'];
$urlAction .= '&fechaIni=' . $_GET['fechaIni'];
$urlAction .= '&fechaFin=' . $_GET['fechaFin'];
 
?><form class="panel3" method="POST"  action="<?php echo $urlAction; ?>"><?php
 
    echo'<label>Seleccione nuevo hotel: </label>';
    echo "<br>";
    obtenerHoteles();
    echo "<div id=\"representacion\" name=\"hotel\"></div>";
    echo "<div id=\"representacion2\" name=\"habitacion\"></div>";
    ?><input type="hidden" name="idH" value= <?php $_GET['idH'];?>><?php
    echo "<br>";
    echo "<label>Fecha de entrada: </label>";
    echo "<br>";
    ?><input class="campo" type="date" name="f1" value = <?php echo $_GET['fechaIni'];?>><?php
    ?><input type="hidden" name="fI" value= <?php $_GET['fechaIni'];?>><?php
    echo "<br><br>";
    echo "<label>Fecha de salida: </label>";
    echo "<br>";
    ?><input class="campo" type="date" name="f2" value = <?php echo $_GET['fechaFin'];?>><?php
    echo "<br><br>";
    echo "<label>Email: </label>";
    echo "<br>";
    ?><input class="campo" type="email" name="email" value = <?php echo $_SESSION["email"]?> readonly><?php
    echo "<br><br>";
    echo "<label>DNI: </label>";
    echo "<br>";
    ?><input class="campo" type="text" name="dni" value = <?php echo $_SESSION["dni"]?> readonly><?php
    echo "<br><br>";
    echo "<input class=\"enviar\" type=\"submit\" value=\"Modificar\">";
    echo "</form>";
echo "</div>";
 
if($_SERVER=="POST"){
 
    $idH=test_input($_REQUEST['idH']);
    $fI=test_input($_REQUEST['fI']);
    $habitacion=test_input($_REQUEST['habitacion']);
    $fecha1=test_input($_REQUEST['f1']);
    $fecha2=test_input($_REQUEST['f2']);
    $resultado=calcularDias($fecha1, $fecha2);
    $precio=obtenerPrecio($habitacion);
    $precioTotal=$precio*$resultado;
 
    modificar($dni, $idH, $fI, $habitacion, $precioTotal, $fecha1, $fecha2);
}
 
    print "<pre>"; print_r($_REQUEST); print "</pre>\n";
?>



1
2
3
4
5
6
7
8
9
10
11
12
Array
(
    [idH] =>
    [fechaIni] => 2020-03-25
    [fechaFin] => 2020-03-29
    [hotel] => 20
    [f1] => 2020-03-26
    [fI] =>
    [f2] => 2020-03-30
    [email] => mizquierdo22@gmail.com
    [dni] => 58962140N
)
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 Julio
Val: 2.007
Plata
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Modificar formulario con variables GET Y POST

Publicado por Julio (830 intervenciones) el 15/03/2020 19:26:07
¿Has copiado bien el código? Parece que hay algo por el medio que no toca (edito, ahora se ve mejor). De todas formas, que hayas construido el action ahora no implica que esto:

1
2
3
$idH=$_GET['idH'];
$fI=$_GET['fechaIni'];
$fF=$_GET['fechaFin'];

Lo vas a seguir necesitando para recoger las variables. No lo quites.

Si estás empezando te invito a que te pases por mi blog y que te suscribas. Aún tiene poco tiempo y falta mucho de qué hablar, pero puedes ver en el índice de contenidos todo lo que está publicado y lo que se publicará próximamente. Dentro de pocas semanas hablaré de todo el tema de formularios y de estas cosas que preguntas aquí.

-----------------------------
Aprende la programación desde una perspectiva básica y simplista en Programación Básica
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: 11
Ha aumentado su posición en 16 puestos en PHP (en relación al último mes)
Gráfica de PHP

Modificar formulario con variables GET Y POST

Publicado por pat (6 intervenciones) el 15/03/2020 19:29:54
Vale Julio repaso el código y te digo... miles de gracias de verdad... estaba ya desesperada jajaja
y gracias por lo del blog! con gente como tu todo es mas sencillo :)
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: 11
Ha aumentado su posición en 16 puestos en PHP (en relación al último mes)
Gráfica de PHP

Modificar formulario con variables GET Y POST

Publicado por pat (6 intervenciones) el 15/03/2020 21:01:18
Ya me reconoce todas las variables!! jajaja el problema ahora es que me vuelve a enviar de nuevo al formulario sin pasar por la función de modificar... pero bueno, esta parte solucionada!!
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