Ver Mensaje Individual
  #11 (permalink)  
Antiguo 02/08/2012, 12:22
Avatar de Heiroon
Heiroon
 
Fecha de Ingreso: junio-2010
Ubicación: Caracas, Venezuela - Por ahora...
Mensajes: 495
Antigüedad: 13 años, 11 meses
Puntos: 63
Exclamación Respuesta: Calendario Datepicker absulutamente en PHP

Bueno ya esta bueno de tanta polémica por nada! Nadie esta negando la ayuda que GatorV nos ha dado a todos, ni existe ningun conflicto personal... Ya aclaré de que iba la cosa... Así que basta con eso!

Y bueno ocp001a, resulta que yo aclare que poniendole algunas cosas al código se puede utilizar como un datepicker...

Yo lo hice de este modo y funciona perfectamente.

Código PHP:
Ver original
  1. <?php
  2.  
  3.     error_reporting(0);
  4.  
  5.     $tipo_semana = 1;
  6.     $tipo_mes = 1;
  7.     $fe = $sess->getData('fecha_calcular');
  8.        
  9.     define('PHP_SELF', $_SERVER['PHP_SELF']);
  10.     if(isset($_REQUEST['txt_fec']))
  11.     {
  12.         $sess->setData("selected", $_REQUEST['txt_fec']);
  13.     }
  14.     if($_REQUEST['todaySel'])
  15.     {
  16.         $sess->setData("selected", date('d/n/Y'));
  17.     }
  18.    
  19.     if($sess->checkData("selected") && (!isset($_REQUEST['ano']) || !isset($_REQUEST['mes'])))
  20.     {
  21.         $f = explode("/", $sess->getData("selected"));
  22.        
  23.         $dia = $f[0];
  24.         $mes = $f[1];
  25.         $ano = $f[2];
  26.     }
  27.     else
  28.     {
  29.         if(!isset($_REQUEST['dia']))
  30.         {
  31.             $dia = date(j);
  32.         }
  33.         else
  34.         {
  35.             $dia = $_REQUEST['dia'];
  36.         }
  37.         if(!isset($_REQUEST['mes']))
  38.         {
  39.             $mes = date(n);
  40.         }
  41.         else
  42.         {
  43.             $mes = $_REQUEST['mes'];
  44.         }
  45.         if(!isset($_REQUEST['ano']))
  46.         {
  47.             $ano = date(Y);
  48.         }
  49.         else
  50.         {
  51.             $ano = $_REQUEST['ano'];
  52.         }
  53.     }
  54.    
  55.     $mesCompleto = array(
  56.         '',
  57.         'Enero',
  58.         'Febrero',
  59.         'Marzo',
  60.         'Abril',
  61.         'Mayo',
  62.         'Junio',
  63.         'Julio',
  64.         'Agosto',
  65.         'Septiembre',
  66.         'Octubre',
  67.         'Noviembre',
  68.         'Diciembre'
  69.     );
  70.    
  71.     $mesAbrev = array(
  72.         '',
  73.         'Ene',
  74.         'Feb',
  75.         'Mar',
  76.         'Abr',
  77.         'May',
  78.         'Jun',
  79.         'Jul',
  80.         'Ago',
  81.         'Sep',
  82.         'Oct',
  83.         'Nov',
  84.         'Dic'
  85.     );
  86.    
  87.     $sema_comp = array(
  88.         'Domingo',
  89.         'Lunes',
  90.         'Martes',
  91.         'Miércoles',
  92.         'Jueves',
  93.         'Viernes',
  94.         'Sábado'
  95.     );
  96.    
  97.     $sema_abrev = array(
  98.         'Dom',
  99.         'Lun',
  100.         'Mar',
  101.         'Mie',
  102.         'Jue',
  103.         'Vie',
  104.         'Sab'
  105.     );
  106.  
  107. ////////////////////////////////////
  108.  
  109.     if($tipo_semana == 0)
  110.     {
  111.         $arr_semana = $sema_comp;
  112.     }
  113.     elseif($tipo_semana == 1)
  114.     {
  115.         $arr_semana = $sema_abrev;
  116.     }
  117.     if($tipo_mes == 0)
  118.     {
  119.         $arr_mes = $mesCompleto;
  120.     }
  121.     elseif($tipo_mes == 1)
  122.     {
  123.         $arr_mes = $mesAbrev;
  124.     }
  125.  
  126.         $TotalDiasMes = date(t,mktime(0,0,0,$mes,$dia,$ano));
  127.         $DiaSemanaEmpiezaMes = date(w,mktime(0,0,0,$mes,1,$ano));
  128.         $DiaSemanaTerminaMes = date(w,mktime(0,0,0,$mes,$TotalDiasMes,$ano));
  129.         $EmpiezaMesCalOffset = $DiaSemanaEmpiezaMes;
  130.         $TerminaMesCalOffset = 6 - $DiaSemanaTerminaMes;
  131.         $TotalDeCeldas = $TotalDiasMes + $DiaSemanaEmpiezaMes + $TerminaMesCalOffset;
  132.  
  133.  
  134.         if($mes == 1)
  135.         {
  136.             $MesAnt = 12;
  137.             $MesSig = $mes + 1;
  138.             $AnoAnt = $ano - 1;
  139.             $AnoSig = $ano;
  140.         }
  141.         elseif($mes == 12)
  142.         {
  143.             $MesAnt = $mes - 1;
  144.             $MesSig = 1;
  145.             $AnoAnt = $ano;
  146.             $AnoSig = $ano + 1;
  147.         }
  148.         else
  149.         {
  150.             $MesAnt = $mes - 1;
  151.             $MesSig = $mes + 1;
  152.             $AnoAnt = $ano;
  153.             $AnoSig = $ano;
  154.             $AnoAnt = $ano - 1;
  155.             $AnoSig = $ano + 1;
  156.         }
  157.  
  158.             $tab_head = '
  159.                 <table style="font-family:arial; font-size:9px" bordercolor="navy" align="center" border="1" cellpadding="1" cellspacing="1" id="masterTable">
  160.                     <tr>
  161.                         <td colspan="10">
  162.                             <table border="0" align="center" style="font-family:arial; font-size:9px; width: 90%;" >
  163.                                 <tr>
  164.                                     <td width="10%"><a href="'.PHP_SELF.'?mes='.$mes.'&ano='.$AnoAnt.'"><img src="'.APP_WEB_ROOT.'media/img/datepicker/atras2.gif" border=0></a></td>
  165.                                     <td width="15%"><a href="'.PHP_SELF.'?mes='.$MesAnt.'&ano='.$ano.'"><img src="'.APP_WEB_ROOT.'media/img/datepicker/atras.gif" border="0"></a></td>
  166.                                     <td width="50%" class="indicator" colspan="1" align="center" nowrap><b>'.$arr_mes[$mes].' - '.$ano.'</b></td>
  167.                                     <td width="15%"><a href="'.PHP_SELF.'?mes='.$MesSig.'&ano='.$ano.'"><img src="'.APP_WEB_ROOT.'media/img/datepicker/avanzar.gif" border=0></a></td>
  168.                                     <td width="10%"><a href="'.PHP_SELF.'?mes='.$mes.'&ano='.$AnoSig.'"><img src="'.APP_WEB_ROOT.'media/img/datepicker/avanzar2.gif" border=0 /></a></td>
  169.                                 </tr>
  170.                             </table>
  171.                         </td>
  172.                     </tr>
  173.             ';
  174.        
  175.             print $tab_head;
  176.            
  177.             print " <tr>";
  178.             foreach($arr_semana AS $key)
  179.             {
  180.                 print '<td class="weekheader"><b>'.$key.'</b></td>';
  181.             }
  182.             print " </tr>";
  183.            
  184.             $sel_day = $sess->getData("selected");
  185.             for($a=1;$a <= $TotalDeCeldas;$a++)
  186.             {
  187.                 if(!$b) $b = 0;
  188.                 if($b == 7) $b = 0;
  189.                 if($b == 0) print '<tr>';
  190.                 if(!$c) $c = 1;
  191.                 if($a > $EmpiezaMesCalOffset AND $c <= $TotalDiasMes)
  192.                 {
  193.                     $dateCom = $c."/".$mes."/".$ano;
  194.                     if($c == date(j) && $mes == date(m) && $ano == date(Y))
  195.                     {
  196.                         $class = "today ";
  197.                         if(($sel_day == $dateCom) || (isset($_REQUEST['todaySel']))) $class .= "selected";
  198.                         print '<td class="'.$class.'"><a href="'.PHP_SELF.'?txt_fec='.$dateCom.'">'.$c.'</a></td>';
  199.                     }
  200.                     elseif($b == 0 OR $b == 6)
  201.                     {
  202.                         $class = "weekend ";
  203.                         if(($sel_day == $dateCom)) $class .= "selected";
  204.                         print '<td class="'.$class.'"><a href="'.PHP_SELF.'?txt_fec='.$dateCom.'">'.$c.'</a></td>';
  205.                     }
  206.                     else
  207.                     {
  208.                         $class = "common ";
  209.                         if(($sel_day == $dateCom)) $class .= "selected";
  210.                         print '<td class="'.$class.'"><a href="'.PHP_SELF.'?txt_fec='.$dateCom.'">'.$c.'</a></td>';
  211.                     }
  212.                     $c++;
  213.                 }
  214.                 else
  215.                 {
  216.                         print '<td class="empty"> </td>';
  217.                 }
  218.                 if($b == 6) print '</tr>';
  219.             $b++;
  220.             }
  221.             $goToday = date('j/n/Y');
  222.             print '<tr><td align="center" colspan="10" class="goToday"><a href="'.PHP_SELF.'?mes='.date(n).'&ano='.date(Y).'&todaySel=1"><b>Hoy</b></a></td></tr>';
  223.            
  224.             print "</table>";
  225.        
  226.        
  227. ?>

Las sesiones las manejo con una clase propia... Pero por demás, creo que esta bastante claro. Lo dejo acá como aporte a quien lo llegue a necesitar!
__________________
Gmail : [email protected]
Twitter: @heiroon

I'm back!