Foros del Web » Programando para Internet » PHP »

Habilitar,desabilitar radio por rango de fechas

Estas en el tema de Habilitar,desabilitar radio por rango de fechas en el foro de PHP en Foros del Web. Estimados tengo la siguiente duda de como hacer una validacion por tiempo en formulario tipo encuesta que estoy haciendo tengo una consulta que me carga ...
  #1 (permalink)  
Antiguo 02/01/2014, 11:15
 
Fecha de Ingreso: febrero-2013
Mensajes: 21
Antigüedad: 11 años, 9 meses
Puntos: 0
Habilitar,desabilitar radio por rango de fechas

Estimados tengo la siguiente duda de como hacer una validacion por tiempo en formulario tipo encuesta que estoy haciendo

tengo una consulta que me carga datos de los usuarios en una grilla
luego en un radio buton le mando variables a otra pagina para que me carge con esas variables los datos
personales y las preguntas del usuario que quiero evaluar
lo que necesito hacer es que cuando ya evalué a un usuario , no poder evaluarlo de nuevo
eso lo logro con un una consulta si esta evaluado en la tabla solo muestro un label que dice 'usuario evaluado'sino muestro el radiobuton y lo mando al formulario

pero este tema de las evaluaciones se haran cada 3 meses entonces ademas necesito hacer que una vez se evalue los usuarios desabilitar el radionbuton por 3 meses y que luego se vuelva a habilitar(entonces la primera consulta ya no me sirve porque siempre estara evaluado y necesito evaluarlo de nuevo)
he estado buscando y se puede hacer con dandole un rango de tiempo a la fecha en php algo como un contador de tiempo
entonces lo que necesito es ademas de validar que no evalúen a un usuario que ya lo esta
que se vuelva activar dentro de 3 meses
la evaluacion debe estar estara activa 10 dias
en el ejemplo que encontre como deberia juntarlo con el mio para a si tener las dos validaciones ?
cualquier aporte sirve
Saludos--

CODIGO

Código PHP:
Ver original
  1. <?php
  2.  
  3. $cadena="SELECT  DEPARTAMENTO,NOMBRES,CARGO,ID_RUT,SUCURSAL
  4.             FROM TRABAJADORES ";
  5.              
  6.              
  7. $ctn = oci_parse ($conexion, $cadena);
  8. oci_execute ($ctn);
  9.  
  10.  echo "<table width='250'>
  11.  
  12.         <tr>
  13.         <th>Nº</th>    
  14.         <th>CARGO</th>
  15.         <th>RUT</th>
  16.         <th>NOMBRE</th>
  17.         <th>ESTADO</th>
  18.         <th>EVALUAR</th>
  19.  
  20.         </tr>";
  21.  
  22. $fecha = date("d/m/Y");
  23.  
  24. while($row = oci_fetch_array($ctn))
  25.   {
  26.    
  27.  
  28.    echo "<tr class='alt'>";
  29.          
  30.           echo "<td>" . $fila['DEPARTAMENTO'] . "</td>";
  31.           echo "<td>" . $fila['NOMBRES'] . "</td>";              
  32.           echo "<td>" . $fila['CARGO'] . "</td>";
  33.           echo "<td>" . $ids=$fila['ID_RUT'] . "</td>";
  34.           echo "<td>" . $fila['SUCURSAL'] . "</td>";
  35.  
  36.  
  37.  //if($fecha == "27/12/2013"){
  38.     //   echo "<td> <input type='radio'value='redirect' disabled='disabled' onClick=\"location.href='evaluar_personal.php?id=".$row['ID_RUT']."'\"></td>"; 
  39.  //}else{
  40.        
  41.          
  42.           $cadena = "SELECT * FROM EVAL_TRABAJADOR WHERE FECHA_EVAL IS NOT NULL  AND ID_RUT = '".$ids."'";
  43.           $ctn = oci_parse($conexion, $cadena);
  44.           oci_execute($ctn);
  45.           $valida = oci_fetch_all($ctn, $respuesta);
  46.          
  47.           if ($valida == 0){
  48.             echo "<td> <input type='radio'value='redirect' onClick=\"location.href='evaluar_personal.php?id=".$row['ID_RUT']."'\"></td>";  
  49.        
  50.           $tabla = true;
  51.        
  52.           }else{
  53.              
  54.             echo "<td><label >EVALUADO</label> </td>"; 
  55.            
  56.  
  57.           }                                      
  58.  //}
  59.   echo "</tr>";  
  60.   }
  61.  
  62.   echo "</table>";


EJEMPLO QUE ENCONTRE

Código PHP:
Ver original
  1. /**
  2.  * Verifica que una fecha esté dentro del rango de fechas establecidas
  3.  * @param $start_date fecha de inicio
  4.  * @param $end_date fecha final
  5.  * @param $evaluame fecha a comparar
  6.  * @return true si esta en el rango, false si no lo está
  7.  */
  8. function check_in_range($start_date, $end_date, $evaluame) {
  9.     $start_ts = strtotime($start_date);
  10.     $end_ts = strtotime($end_date);
  11.     $user_ts = strtotime($evaluame);
  12.     return (($user_ts >= $start_ts) && ($user_ts <= $end_ts));
  13. }
  14.  
  15.  
  16. $start_date = '2010-06-01';
  17. $end_date = '2010-06-30';
  18. $fecha_a_evaluar = '2010-06-15';
  19.  
  20. if (check_in_range($start_date, $end_date, $fecha_a_evaluar)) {
  21.     echo "estas en rango";
  22. } else {
  23.     echo "fuera de rango";
  24. }
  #2 (permalink)  
Antiguo 03/01/2014, 10:29
 
Fecha de Ingreso: agosto-2013
Mensajes: 150
Antigüedad: 11 años, 3 meses
Puntos: 29
Respuesta: Habilitar,desabilitar radio por rango de fechas

Puede darte una idea:

Carga el dato en la BBDD sumando 3 meses
Código txt:
Ver original
  1. --------------------------
  2. id  Campo           Valor
  3. --------------------------
  4. 1   evaluado        null
  5. 2   evaluado        2014-01-03 <-- está evaluado hasta esta fecha
  6. 3   evaluado        null
Código PHP:
Ver original
  1. // Prueba de fecha de sistema + 3 meses
  2. $mas3 = date("Y/m/d", strtotime(date("Y/m/d") . " + 3 month"));
  3. echo $mas3;
  4.  
  5. // Simula el retorno de cambo BBDD
  6. $campo = '2014-01-03'; // prueba con la fecha del día
  7. // Si ya es la fecha de hoy habilita
  8. if($campo == date('Y-m-d')) $habilitado = 1;
  9. if($habilitado !== 1) $estado = 'disabled';
  10. ?>
Código HTML:
Ver original
  1. <input type="checkbox" name="foo" <?= $estado; ?> />
  #3 (permalink)  
Antiguo 07/01/2014, 10:57
 
Fecha de Ingreso: febrero-2013
Mensajes: 21
Antigüedad: 11 años, 9 meses
Puntos: 0
Respuesta: Habilitar,desabilitar radio por rango de fechas

Cita:
Iniciado por bathorz Ver Mensaje
Puede darte una idea:

Carga el dato en la BBDD sumando 3 meses
Código txt:
Ver original
  1. --------------------------
  2. id  Campo           Valor
  3. --------------------------
  4. 1   evaluado        null
  5. 2   evaluado        2014-01-03 <-- está evaluado hasta esta fecha
  6. 3   evaluado        null
Código PHP:
Ver original
  1. // Prueba de fecha de sistema + 3 meses
  2. $mas3 = date("Y/m/d", strtotime(date("Y/m/d") . " + 3 month"));
  3. echo $mas3;
  4.  
  5. // Simula el retorno de cambo BBDD
  6. $campo = '2014-01-03'; // prueba con la fecha del día
  7. // Si ya es la fecha de hoy habilita
  8. if($campo == date('Y-m-d')) $habilitado = 1;
  9. if($habilitado !== 1) $estado = 'disabled';
  10. ?>
Código HTML:
Ver original
  1. <input type="checkbox" name="foo" <?= $estado; ?> />


Estimado muchas gracias por la ayuda me sirvio aunque tuve que modificarla un poco

pero tengo un duda con respecto a variables , es decir como puedo cambiarle el valor a una variable con un boton


tengo esto :

Código PHP:
Ver original
  1. $fecha_inicio = '01-01-2014';
  2.  
  3. //muestro la variable en  el input
  4. echo '<input type="text" value="'.$fecha_inicio .'"/>';

lo que intento hacer es modificar el valor de esa variable sin tener que irme al codigo
alguna idea?

Saludos y gracias de nuevo
  #4 (permalink)  
Antiguo 07/01/2014, 12:09
Avatar de luis010182  
Fecha de Ingreso: julio-2009
Ubicación: Argentina - Capital Federal
Mensajes: 382
Antigüedad: 15 años, 4 meses
Puntos: 27
Respuesta: Habilitar,desabilitar radio por rango de fechas

Yo creo que lo mejor seria crear un campo en la table por ejemplo, ultima_evalucion con formato fecha y la validas cada ves que traigas los datos del usuario. Cuando paso los tres meses y haces la evalucion actualizas el campo.
  #5 (permalink)  
Antiguo 07/01/2014, 12:38
 
Fecha de Ingreso: febrero-2013
Mensajes: 21
Antigüedad: 11 años, 9 meses
Puntos: 0
Respuesta: Habilitar,desabilitar radio por rango de fechas

estimados gracias por sus respuestas , con este codigo valido que no evaluen al mismo usuario dentro de los 10 dias y ademas cuando sea el dia 11 se desesabilitaran los radio y mostara el mensaje 'evaluacion caduco'

hasta hay todo bien
el tema es que tengo los valores de las variables
$start_date y $end_date en duro y tendria que cambiarlas por codigo cada vez que quieran evaluar
la idea es dejarlo automatico
es decir activo durante los 10 dias y cuando sea el dia 11 mostrar el mensaje
'evaluacion caduco' y que se vuelva a habilitar en 3 meses mas



Código PHP:
function check_in_range($start_date$end_date$evaluame) {
    
$start_ts strtotime($start_date);
    
$end_ts strtotime($end_date);
    
$user_ts strtotime($evaluame);
    return ((
$user_ts >= $start_ts) && ($user_ts <= $end_ts));
}
$start_date '01-01-2014';// valores en duro
$end_date '10-01-2014'// valores en duro
$fecha_a_evaluar date("d-m-Y");// todavia puedo evaluar por que estoy en el rango 



consulta :
$cadena="SELECT * FROM EVAL_TRABAJADOR
WHERE to_char(FECHA_EVAL ,'dd-mm-yyyy') between '"
.$start_date."' AND '".$end_date."'
AND ID_RUT ='"
.$ids."'";
$ctn oci_parse($conexion$cadena);
oci_execute($ctn);
$valida oci_fetch_all($ctn$respuesta);

if (
$valida == and check_in_range($start_date$end_date$fecha_a_evaluar)){ 

echo 
"<td> <input type='radio' value='redirect' onClick=\"location.href='evaluar_personal.php?id=".$row['ID_RUT']."'\" /></td>";

}else{
if (
$valida ){
echo 
"<td><label >EVALUADO</label></td>";

}else{
echo 
"<td><label >EVAUACION CADUCO</label></td>";

}
   
  }
// 
a ver si me hechan un mano
Saludos..

Etiquetas: fecha, formulario, radio, rango, select, tabla, usuarios, 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 22:10.