Hola amigos, necesito su ayuda urgente, estoy haciendo una pagina y necesito que cuando un usuario seleccione en un select o lista deplegable el valor "Fecha", se desplieguen dos campos para que el usuario seleccione una fecha inicial y una final para realizar una consulta. He logrado hacer eso en el evento onchange del select y me funciona bien.
Pero, aqui viene el problema, logicamente el usuario al seleccionar "Fecha" necesitará los dos campos y cuando ya ha seleccionado la fecha inicial y la fecha final, deseará saber que hay entre ese intervalo, pero inexplicablemente no consigo hacerlo porque no me realiza la consulta y no muestra nada. se pulsa un boton con submit usando POST pero al parecer no identifica las fechas, pruebo con un echo, pero imprime las demas opciones pero las fechas nada, estoy perdido, que puedo hacer?
Este es el codigo:
select:
Código HTML:
<select name="criterio" id="criterio" onchange="mostrar(this.form)">
<option value="Documento">Documento</option>
<option value="Nombres">Nombres</option>
<option value="Apellidos">Apellidos</option>
<option value="Fecha">Fecha</option>
</select>
como ven hay una funcion que es esta la cual me muestra los campos para que el usuario ingrese las fechas:
Código HTML:
<script>
function mostrar(form1){
var i = (form1.criterio.selectedIndex);
var n = (form1.criterio.options[i].text);
if (i==3){
document.getElementById('inicio').type='text';
document.getElementById('inicio').disabled=false;
document.getElementById('fin').type='text';
document.getElementById('lb1').type='text';
document.getElementById('lb2').type='text';
document.getElementById('fin').disabled=false;
document.getElementById('valor').type='hidden';
document.getElementById('valor').disabled='disabled';
document.getElementById('tipo').value = n;
} else
{
document.getElementById('inicio').type='hidden'; document.getElementById('inicio').disabled='disabled';
document.getElementById('fin').type='hidden'; document.getElementById('lb1').type='hidden';
document.getElementById('lb2').type='hidden';
document.getElementById('fin').disabled='disabled';
document.getElementById('valor').type='text'; document.getElementById('valor').disabled=false;
document.getElementById('tipo').value = n;
}
}
</script>
finalmente tengo el codigo php, cual se ejecuta en la misma pagina por solicitud del usuario, de manera que el form esta referenciado a si mismo.
este es el código, los procedimientos para Documento, Nombres y Apellidos funcionan a la perfeccion pero el de fecha no. probé haciendo lo mismo ($criterio == "Fecha") pero nada, lo puse así hace un momento para ver si funcionaba, pero tampoco:
Código PHP:
if (isset($_POST['valor'])){
$v = $_POST['valor'];
$criterio = $_POST['criterio'];
?>
<script>alert("Si esta entrando: <?php echo $criterio?>");</script>
<?php
if ($criterio=="Documento"){
$consulta = "SELECT*FROM personal where doc_personal = '$v'";
$query = mysql_query($consulta,$conex);
$resultado = mysql_fetch_array($query);
}
if ($criterio=="Nombres"){
$consulta = "SELECT*FROM personal where nombres_personal like '%$v%'";
$query = mysql_query($consulta,$conex);
$resultado = mysql_fetch_array($query);
}
if ($criterio=="Apellidos"){
$consulta = "SELECT*FROM personal where apellidos_personal like '%$v%'";
$query = mysql_query($consulta,$conex);
$resultado = mysql_fetch_array($query);
}
if ((isset($_POST['inicio'])) and (isset($_POST['fin'])))
{
$fec = explode('/', $_POST['inicio']);
$fecha_inicio = "{$fec[2]}-{$fec[1]}-{$fec[0]}";
$fech = explode('/', $_POST['fin']);
$fecha_fin = "{$fech[2]}-{$fech[1]}-{$fech[0]}";
$consulta = "SELECT*FROM personal where fecha_con_personal between '$fecha_inicio' and '$fecha_fin'";
$query = mysql_query($consulta,$conex);
$resultado = mysql_fetch_array($query);
}
}
Como pueden ver tambien puse un alert, para verificar si me estaba llegando el valor seleccionado en la variable criterio, efectivamente capturo los valores de Documento, Nombres, Apellidos pero con fecha no hace nada ni sale nada. Realmente estoy desesperado, tengo que entregar esto mañana en la tarde y no se que hacer, por favor ayudenme maestros!