Recordar opcion select al volver a la pagina php
Publicado por ricardo (3 intervenciones) el 05/01/2021 21:46:17
Hola, tengo el siguiente problema , cuando mando un formulario y hay algun campo incorrecto vuelvo a la pagina y quiero que el valor seleccionado en el select se guarde y al volver muestre el que seleccione , lo que conseguido hacer facil con el campo nombre... que son input type="text" con sessiones pero con el select no se como hacerlo , este es el codigo de la pagina donde inserto los datos
y esta es la pagina que lo recibe y me redirecciona a la segunda si algo esta mal
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
<?php
$conexion = new PDO('mysql:host=localhost;dbname=dwes_dic2020', 'root', '');
$consultaNacionalidad = $conexion->query('SELECT id ,nacionalidad FROM paises');
$consultaDepartamento = $conexion->query('SELECT id , nombre FROM departamentos');
session_name("sesion");
session_start();
?>
<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="utf-8">
<title>
Empresa - Empleados - Insertar
</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
</head>
<body>
<form action="ejercicio-06-03.php" method="post">
<h1>Insertar Empleado</h1>
<div>
Nombre<input type="text" name="nombre" value="<?php if(isset($_SESSION["nombre"])){print $_SESSION["nombre"];} ?>"><br><br>
Apellidos<input type="text" name="apellidos" value="<?php if(isset($_SESSION["apellido"])){print $_SESSION["apellido"];} ?>"><br><br>
Salario<input type="number" name="salario" value="<?php if(isset($_SESSION["salario"])){print $_SESSION["salario"];} ?>"><br><br>
Hijos <select name="numhijos">
<option selected="selected" value="-1">seleccione el numero de hijos</option>
<option value="0">0</option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
</select><br>
<br>
Nacionalidad <select name="nacionalidad">
<option selected="selected" value="-1">Selecciona nacionalidad</option>
<?php
while ($row = $consultaNacionalidad->fetch(PDO::FETCH_ASSOC)) {
print"<option value=$row[id]>$row[nacionalidad]</option>";
}
?>
</select>
<br>
<br>
Departamento <select name="departamento">
<option selected="selected" value="-1">Selecciona departamento</option>
<?php
while ($row = $consultaDepartamento->fetch(PDO::FETCH_ASSOC)) {
print"<option value=$row[id]>$row[nombre]</option>";
}
?>
</select><br>
<?php
if(isset($_REQUEST["value"])){
print $_REQUEST["value"];
}
?>
<p>
<input type="submit" name="guardar" value="Guardar"><br>
<a href="ejercicio-06-01.php">Volver</a>
</p>
</div>
</form>
<?php
session_destroy();
?>
</body>
</html>
y esta es la pagina que lo recibe y me redirecciona a la segunda si algo esta mal
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
<?php
$mensaje="";
$ok=true;
print_r($_REQUEST);
session_name("sesion");
session_start();
if($_REQUEST["nombre"]==""){
$mensaje=$mensaje."No has escrito el nombre<br>";
$ok=false;
}else
$_SESSION["nombre"]=$_REQUEST["nombre"];
if($_REQUEST["apellidos"]==""){
$mensaje=$mensaje."No has escrito el apellido<br>";
$ok=false;
}else
$_SESSION["apellido"]=$_REQUEST["apellidos"];
if($_REQUEST["salario"]==""){
$mensaje=$mensaje."No has escrito el salario<br>";
$ok=false;
}else
$_SESSION["salario"]=$_REQUEST["salario"];
if($_REQUEST["numhijos"]==-1){
$mensaje=$mensaje."Selecciona el numero de hijos<br>";
$ok=false;
}else
$_SESSION["numhijos"]=$_REQUEST["numhijos"];
if($_REQUEST["nacionalidad"]==-1){
$mensaje=$mensaje."Selecciona la nacionalidad<br>";
$ok=false;
}else
$_SESSION["nacionalidad"]=$_REQUEST["nacionalidad"];
if($_REQUEST["departamento"]==-1){
$mensaje=$mensaje."Selecciona el departamento<br>";
$ok=false;
}else
$_SESSION["departamento"]=$_REQUEST["departamento"];
if(!$ok){
header("Location:ejercicio-06-02.php?value=$mensaje");
}else{
}
Valora esta pregunta


0