PHP - No perder el valor de variable al direccionar a otra página y realizar búsqueda

   
Vista:
Imágen de perfil de José

No perder el valor de variable al direccionar a otra página y realizar búsqueda

Publicado por José (2 intervenciones) el 01/06/2016 04:22:01
Hola comunidad, en el siguiente código se direcciona el valor numérico del id (variable externa con el nombre "idesp") de un registro de especialidad a través de un formulario hacia otra página que lo recibe, y en esta debe permitir la búsqueda de los pacientes pertenecientes a esta especialidad según id direccionado y fecha.

El inconveniente es que al realizar la respectiva busqueda por fecha en la segunda página(página a la cual direcciona el formulario de especialidad) me muestra el siguiente error "Notice: Undefined index: idesp in C:\xampp\htdocs\31-05-2016\Citas\registro_citas_especialidad2.php on line 12".

Tal parece que solo está guardando la variable "idesp" solo una vez (cuando direcciona), pues al realizar la búsqueda ya no está definido. Agradezco de antemano de su apreciable ayuda, sea mucha o mínima es de gran utilidad para mi. Saludos.

Dejo adjunto la carpeta del sitio con todos los archivos y la base de datos.

La dirección local de las páginas en cuestión son:
http://localhost/31-05-2016/Citas/Citas_por_especialidad.php (página que contiene el formulario)
http://localhost/31-05-2016/Citas/Registro_citas_especialidad2.php?idesp=1 (página que recibe la variable "idesp" con el método GET).

Utilizo xampp 1.8.2-6 con PHP 5.4.31, Apache 2.4.10 y Mysql 5.5.39
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 xve

No perder el valor de variable al direccionar a otra página y realizar búsqueda

Publicado por xve (5518 intervenciones) el 01/06/2016 08:55:52
Hola José, fijate que no es un error, es un "Notice"... simplemente te informa.

Esto lo puedes solucionar de dos maneras... una, des-habilitando los "Notice" en el php.ini, o verificando con anterioridad si existe.

por ejemplo, si el "Notice" te lo da esta linea:
1
if($_POST["myvar"])
puedes hacer:
1
if(isset($_POST["myvar"]) && $_POST["myvar"])

Si lo que quieres es mantener la variable, para ello, puedes ponerla en una variable de sesión, de esta manera, estará activa durante toda la sesión del usuario.

Te sirve?
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 José

No perder el valor de variable al direccionar a otra página y realizar búsqueda

Publicado por José jose27233@gmail.com (2 intervenciones) el 04/06/2016 04:49:11
Amigo, ya lo he hecho de la forma como me indicas, recibiendo el valor con lo siguiente:

1
2
$_SESSION['variable'] = $_GET['idesp'];
$idespecialidad=$_SESSION['variable'];

Luego para comprobar el formulario de busqueda uso lo siguiente:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<form class="form-inline" id="buscador" name="buscador" method="GET" action="<?php $_SERVER['PHP_SELF'] ?>">
     <div class="form-group">
          <div class="input-group">
		<div class="input-group-addon"><div class="glyphicon glyphicon-list-alt"></div>&nbspFecha Mínima</div>
		<input type="date" class="form-control" id="fecha1" name="fecha1" step="1" min="1900-01-01" max="2100-12-31" value="<?php echo date("Y-m-d");?>" required>
         </div>
         <div class="input-group">
		<div class="input-group-addon"><div class="glyphicon glyphicon-calendar"></div>&nbspFecha Máxima</div>
		<input type="date" class="form-control" id="fecha2" name="fecha2" step="1" min="1900-01-01" max="2100-12-31" value="<?php echo date("Y-m-d");?>" required>
	</div>
     </div>
     <button type="submit" class="btn btn-info">Buscar</button>
</form>
 
					<?php
						//	<!--SI SE UTILIZA EL FORMULARIO PARA LA BUSQUEDA POR FECHA EN LA BASE DE DATOS-->
						if(isset($_GET['fecha1']) && isset($_GET['fecha2'])){
								$fechaMin=$_GET['fecha1'];
								$fechaMax=$_GET['fecha2'];
								$total_registros = $conexion->contar_registros("SELECT count(*) FROM cita, especialidad WHERE cita.fk_especialidad=especialidad.id_especialidad AND cita.fk_especialidad='$idespecialidad' AND fecha_cita BETWEEN '$fechaMin'  AND '$fechaMax'");

Pero aún así se pierde el valor de la variable "idesp" que recibo desde la otra página y esto trae como consecuencia que al usar el formulario de búsqueda no pueda encontrar el registro según lo que contiene la variable "idesp".
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