Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Mostrar/Ocultar Input con Select - No Funciona!

Estas en el tema de Mostrar/Ocultar Input con Select - No Funciona! en el foro de PHP en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 09/03/2015, 18:33
 
Fecha de Ingreso: marzo-2015
Mensajes: 7
Antigüedad: 9 años, 1 mes
Puntos: 0
Mostrar/Ocultar Input con Select - No Funciona!

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!
  #2 (permalink)  
Antiguo 09/03/2015, 19:06
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Mostrar/Ocultar Input con Select - No Funciona!

A ver si te entiendo, con Javascript estás manipulando el formulario ocultando y modificando campos, que supongo ahí estará la de la fecha, etc.

Entonces, ¿por qué crees que el problema tiene que ver con PHP y no con Javascript?

Vamos, que tu script de PHP sólo recibe los datos, ¿pero ahí crees que esté el problema o qué relación le ves tú?

Yo sólo entiendo que tu problema tiene que ver mucho más con tu rutina de Javascript que con otra cosa.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 09/03/2015, 20:06
 
Fecha de Ingreso: marzo-2015
Mensajes: 7
Antigüedad: 9 años, 1 mes
Puntos: 0
Respuesta: Mostrar/Ocultar Input con Select - No Funciona!

Ahora que lo mencionas, si retiro todo el código javascript funciona perfetamente, de manera que tienes razón, no se trata de php, tal vez sea a la hora de manipular los campos con javascript que ocurre algo, sin embargo no puedo encontrar que pueda ser, y si es así como podría ocultar los campos de una manera menos complicada para evitar esos problemas.
  #4 (permalink)  
Antiguo 09/03/2015, 20:40
 
Fecha de Ingreso: marzo-2015
Mensajes: 7
Antigüedad: 9 años, 1 mes
Puntos: 0
Respuesta: Mostrar/Ocultar Input con Select - No Funciona!

Bueno, finalmente he logrado solucionar el problema, al parecer si se trataba de javascript, oculté los campos de una muy mala forma, aunque en principio funcionaba, simplemente solo era una fachada de errores que afectaban la funcionalidad, simplemente lo que hice fue sustituir las lineas javascript sin ponerme a jugar con el tipo de el campo, y solo modifique el estilo asi:

Código Javascript:
Ver original
  1. document.form1.inicio.style.display = 'inline';

Sin embargo perdí valioso tiempo y tendré que pasar derecho esta noche. :S

Etiquetas: fecha, input, mostrar-ocultar, mysql, select, variable
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 20:48.