Foros del Web » Programando para Internet » Javascript »

funciones Javascript para calendario

Estas en el tema de funciones Javascript para calendario en el foro de Javascript en Foros del Web. Tengo las siguientes funciones y quiero aprovechar las primeras 2 dentro de la 3ra para poder delimitar que campo recibe el valor que le mando ...
  #1 (permalink)  
Antiguo 19/09/2010, 12:18
 
Fecha de Ingreso: agosto-2010
Ubicación: Mexico
Mensajes: 180
Antigüedad: 13 años, 8 meses
Puntos: 0
funciones Javascript para calendario

Tengo las siguientes funciones y quiero aprovechar las primeras 2 dentro de la 3ra para poder delimitar que campo recibe el valor que le mando del calendario. No se si sea posible tener las funciones dentro de la funcion
Código PHP:
<script type="text/javascript">
  
// http://www.somacon.com/p143.php  
  // return the value of the radio button that is checked
  // return an empty string if none are checked, or
  // there are no radio buttons
  
function getCheckedValue(radioObj) {
    if(!
radioObj)
        return 
"";
    var 
radioLength radioObj.length;
    if(
radioLength == undefined)
        if(
radioObj.checked)
            return 
radioObj.value;
        else
            return 
"";
    for(var 
0radioLengthi++) {
        if(
radioObj[i].checked) {
            return 
radioObj[i].value;
        }
    }
    return 
"";
   }

   
// set the radio button with the given value as being checked
   // do nothing if there are no radio buttons
   // if the given value does not exist, all the radio buttons
   // are reset to unchecked
   
function setCheckedValue(radioObjnewValue) {
     if(!
radioObj)
        return;
      var 
radioLength radioObj.length;
      if(
radioLength == undefined) {
        
radioObj.checked = (radioObj.value == newValue.toString());
        return;
      }
      for(var 
0radioLengthi++) 
      {
        
radioObj[i].checked false;
        if(
radioObj[i].value == newValue.toString()) 
        {
            
radioObj[i].checked true;
         }
      }
    }

    
    
/*  
    Made by Martial Boissonneault � 2002-2003 http://getElementById.com/
    May be used and changed freely as long as this msg is intact
    Visit http://getElementById.com/ for more free scripts and tutorials.
    */

      
var ns4 = (document.layers); 
    var 
ie4 = (document.all && !document.getElementById); 
    var 
ie5 = (document.all && document.getElementById); 
    var 
ns6 = (!document.all && document.getElementById); 
 
    function 
FechaContrato(valor)
    { 
        
// Netscape 4
        
if(ns4)
        {
           
document.layers[id].value valor;         
        }
        
// Explorer 4
        
elseif(ie4)
        {
          
document.all[id].value valor;
        }
        
// W3C - Explorer 5+ and Netscape 6+
        
elseif(ie5 || ns6)
        {

            
document.getElementById(id).value valor;
        }
     }
  
</script> 
  #2 (permalink)  
Antiguo 19/09/2010, 12:22
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: funciones Javascript para calendario

pero yo solo veo código Javascript, ¿donde esta el problema con PHP?
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 19/09/2010, 23:14
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Tema movido desde PHP a Javascript
  #4 (permalink)  
Antiguo 20/09/2010, 06:40
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 17 años, 4 meses
Puntos: 126
Respuesta: funciones Javascript para calendario

Hola

Si que es posible
Cita:
function funcion1() {
funcion2;
funcion3(valor);
}
Suerte
__________________
Los formularios se envían/validan con un botón Submit
<input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" />
  #5 (permalink)  
Antiguo 20/09/2010, 08:34
 
Fecha de Ingreso: agosto-2010
Ubicación: Mexico
Mensajes: 180
Antigüedad: 13 años, 8 meses
Puntos: 0
Respuesta: funciones Javascript para calendario

a lo que me refiero es tener algo como:
funcion1(valor,funcion2())
{
Codigo
}

ya que necesito tomar de un radio button el valor que tiene para poder asignar la fecha a un input de texto
He aqui el calendario,
Código PHP:
    <FORM NAME="CALENDARIO" ID="vCALENDARIO">
        <table>
         <tr>
          <th colspan="7"><?php echo $arrDate[0]; ?> <?php echo $arrDate[1]; ?></th>
         </tr>
         <tr>
          <th colspan="3">
           <a href="<?php echo $_SERVER['PHP_SELF']; ?>?m=<?php echo ($m 12); ?>">&lt;&lt;<?php echo $arrDate[1] - 1 ?></th>
          <th></th>
          <th colspan="3">
           <a href="<?php echo $_SERVER['PHP_SELF']; ?>?m=<?php echo ($m 12); ?>"><?php echo $arrDate[1] + 1?>&gt;&gt;</a></th>
          </tr><tr>
         <th>D</th>
         <th>L</th>
         <th>M</th>
         <th>M</th>
         <th>J</th>
         <th>V</th>
         <th>S</th>
        </tr><tr>
       <?php echo $calendar?>
        </tr><tr>
         <th><a href="<?php echo $_SERVER['PHP_SELF']; ?>?m=<?php echo ($m 1); ?>">&lt;&lt;</a></th>
         <th colspan="5"></th>
         <th><a href="<?php echo $_SERVER['PHP_SELF']; ?>?m=<?php echo ($m 1); ?>">&gt;&gt;</a></th>
        </tr>
       </table> 
       <label for="INICIO"><input type="radio" name="vFContrato" id="INICIO" value="INICIO"/> FECHA INICIAL <br/></label>
       <label for="MES"><input type="radio" name="vFContrato" id="MES" value="MES" /> PRIMERA RENOVACION <br/></label>
       <label for="TRIO"><input type="radio" name="vFContrato" id="TRIO" value="TRIO" /> SEGUNDA RENOVACION <br/></label> 
       <label for="ANIO"><input type="radio" name="vFContrato" id="ANIO" value="ANIO" /> TERCERA RENOVACION <BR/></label>
    </FORM></CENTER>
y el codigo en PHP del calendario,
Código PHP:
  $m = isset($_REQUEST['m']) ? $_REQUEST['m'] : 0;
  
  
/**
  * date('F') -> Una representación textual completa de un mes, como enero o marzo
  * date('Y') -> Una representación numérica completa de un año, 4 dígitos
  * date('n') -> Representación numérica de un mes, sin ceros a la izquierda
  * date('L') -> Si es un año bisiesto
  */
 
  //$id = isset($_GET['vFContrato']);
  
$arrDate explode(' 'date('F Y n L'strtotime($m ' month')));
  
$lastDayOfMonth date('d'strtotime('last day of ' $arrDate[0])) + ($arrDate[2] == $arrDate[3] : 0);
  
$calendar '';
  
//echo $lastDayOfMonth;
  
for($i=1$i<=$lastDayOfMonth$i++)
  {
   
$numDayWeek date('w'mktime(000, (date('n') + $m), $i));
   
$js         date('d-m-y'mktime(000, (date('n') + $m), $i));
   
$calendar   .= ($numDayWeek == && $i != 1) ? '</tr><tr>' ''
   
$calendar   .= ($i == && $numDayWeek 0)     
   ? 
"<td colspan='$numDayWeek' class='opac'></td>"."<td onclick='FechaContrato($js,obtenValor())'>$i</td>"
   
"<td onclick='FechaContrato($js,obtenValor())'>$i</td>";
   
$calendar   .= ($i == $lastDayOfMonth && ($numDayWeek) > 0) ? '<td colspan="' . ($numDayWeek) . '" class="opac">' '';
   
//echo "<br/>".$i;
   //echo $js;
  


Última edición por Urso; 20/09/2010 a las 08:54
  #6 (permalink)  
Antiguo 20/09/2010, 12:13
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 17 años, 4 meses
Puntos: 126
Respuesta: funciones Javascript para calendario

Hola

No lo entiendo pero no importa. Quizás te ayude esto

Suerte
__________________
Los formularios se envían/validan con un botón Submit
<input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" />
  #7 (permalink)  
Antiguo 20/09/2010, 16:04
 
Fecha de Ingreso: agosto-2010
Ubicación: Mexico
Mensajes: 180
Antigüedad: 13 años, 8 meses
Puntos: 0
Respuesta: funciones Javascript para calendario

Muchas gracias pero lo estoy haciendo procedural
  #8 (permalink)  
Antiguo 21/09/2010, 05:02
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 17 años, 4 meses
Puntos: 126
Respuesta: funciones Javascript para calendario

Hola

Ahí me has dejado Si tienes tan claro el tipo de programación que quieres realizar, supongo que tienes literatura sobre ella. Me suscribiré a este tema para seguir su evolución

Suerte
__________________
Los formularios se envían/validan con un botón Submit
<input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" />
  #9 (permalink)  
Antiguo 21/09/2010, 08:46
 
Fecha de Ingreso: agosto-2010
Ubicación: Mexico
Mensajes: 180
Antigüedad: 13 años, 8 meses
Puntos: 0
Respuesta: funciones Javascript para calendario

no hay algun modo de usar un anchor en el calendario para el uso de un submit? asi dejarlo todo en php y al enviar el valor solo seria en ese punto el uso de Javascript


Mediante el Label me selecciona el input que necesito al hacer el onclick sin embargo estoy viendo que la parte de javascript solo me va funcionar para asignar el valor.

<label for="vINICIO">
<input type="radio" name="vFContrato" id="vFContrato" value="vINICIO" /> FECHA INICIAL
<br />
</label>

busco alternativas para envio del valor del calendario a traves del radiobutton al input.

Última edición por Urso; 21/09/2010 a las 13:06
  #10 (permalink)  
Antiguo 22/09/2010, 12:36
 
Fecha de Ingreso: agosto-2010
Ubicación: Mexico
Mensajes: 180
Antigüedad: 13 años, 8 meses
Puntos: 0
Respuesta: funciones Javascript para calendario

Ya funciono algo de lo que tengo, ahi va el codigo,
Código PHP:
<?php
  $m 
= isset($_REQUEST['m']) ? $_REQUEST['m'] : 0;
  
  
/**
  * date('F') -> Una representación textual completa de un mes, como enero o marzo
  * date('Y') -> Una representación numérica completa de un año, 4 dígitos
  * date('n') -> Representación numérica de un mes, sin ceros a la izquierda
  * date('L') -> Si es un año bisiesto
  */
 
  //$id = isset($_GET['vFContrato']);
  
$arrDate explode(' 'date('F Y n L'strtotime($m ' month')));
  
$lastDayOfMonth date('d'strtotime('last day of ' $arrDate[0])) + ($arrDate[2] == $arrDate[3] : 0);
  
$calendar '';
  
//echo $lastDayOfMonth;
  
for($i=1$i<=$lastDayOfMonth$i++)
  {
   
$numDayWeek date('w'mktime(000, (date('n') + $m), $i));
   
$js         date('d-m-y'mktime(000, (date('n') + $m), $i));
   
$calendar   .= ($numDayWeek == && $i != 1) ? '</tr><tr>' ''
   
//echo $js;
   
$calendar   .= ($i == && $numDayWeek 0)     
   ? 
"<td colspan='$numDayWeek' class='opac'> </td> <td onclick= javascript:FechaContrato(".$js.") >".$i." </td>"
   
"<td onclick= javascript:FechaContrato(".$js.") >".$i."  </td>";
   
$calendar   .= ($i == $lastDayOfMonth && ($numDayWeek) > 0) ? '<td colspan="' . ($numDayWeek) . '" class="opac">' '';
   
//echo "<br/>".$i;
   //echo $js;
  
}
?>
  <script type="text/javascript">
    var id = "";
    var valor = "";
 
       function FechaContrato(valor)
    { 
      var CH = document.getElementById('vFContrato').check;
      //var ini = document.getElementByName('vMES').checked;    
      if(CH==true)
       id = document.getElementById('vFContrato').value;
     
      alert(id+" "+CH);
      document.getElementById(id).value = valor;
       }
        // window.onload = FechaContrato("vINICIO");
  </script>
    ...
       <TD>     
        FECHA INICIO<BR/>
        <INPUT TYPE="TEXT" ID="vINICIO" VALUE="<?PHP echo $row[13]; ?>">
        &nbsp;&nbsp;<BR/>  
        PRIMERA RENOVACION DE CONTRATO<BR/>
        <INPUT TYPE="TEXT" ID="vMES" VALUE="<?PHP echo sumarmeses ($row[13], 1); ?>">
        &nbsp;&nbsp;<BR/>
        SEGUNDA RENOVACION DE CONTRATO<BR/>
        <INPUT TYPE="TEXT" ID="vTRIO" VALUE="<?PHP echo sumarmeses ($row[13], 4); ?>">
        &nbsp;&nbsp;<BR/>         
        TERCERA RENOVACION DE CONTRATO<BR/>
        <INPUT TYPE="TEXT" ID="vANIO" VALUE="<?PHP echo sumarmeses ($row[13], 16); ?>">
        &nbsp;&nbsp; 
       </TD>
       <TD><center>
        <table>
         <tr>
          <th colspan="7"><?php echo $arrDate[0]; ?> <?php echo $arrDate[1]; ?></th>
         </tr>
         <tr>
          <th colspan="3">
           <a href="<?php echo $_SERVER['PHP_SELF']; ?>?m=<?php echo ($m 12); ?>">&lt;&lt;<?php echo $arrDate[1] - 1 ?></th>
          <th></th>
          <th colspan="3">
           <a href="<?php echo $_SERVER['PHP_SELF']; ?>?m=<?php echo ($m 12); ?>"><?php echo $arrDate[1] + 1?>&gt;&gt;</a></th>
          </tr><tr>
         <th>D</th>
         <th>L</th>
         <th>M</th>
         <th>M</th>
         <th>J</th>
         <th>V</th>
         <th>S</th>
        </tr><tr>
       <?php echo $calendar?>
        </tr><tr>
         <th><a href="<?php echo $_SERVER['PHP_SELF']; ?>?m=<?php echo ($m 1); ?>">&lt;&lt;</a></th>
         <th colspan="5"></th>
         <th><a href="<?php echo $_SERVER['PHP_SELF']; ?>?m=<?php echo ($m 1); ?>">&gt;&gt;</a></th>
        </tr>
       </table></center>
 
        <input type="radio" id="vFContrato" name="vFContrato" value="vINICIO"/> FECHA INICIAL  
        <br />
 
        <input type="radio" id="vFContrato" name="vFContrato" value="vMES"/> PRIMERA RENOVACION 
        <br />
 
        <input type="radio" id="vFContrato" name="vFContrato" value="vTRIO"/> SEGUNDA RENOVACION 
        <br />
 
        <input type="radio" id="vFContrato" name="vFContrato" value="vANIO"/> TERCERA RENOVACION 
        <BR />

      </TD>
   ...
Me falta que me considere los botones despues del primero
  #11 (permalink)  
Antiguo 22/09/2010, 13:50
 
Fecha de Ingreso: agosto-2010
Ubicación: Mexico
Mensajes: 180
Antigüedad: 13 años, 8 meses
Puntos: 0
Respuesta: funciones Javascript para calendario

Asi quedo la funcion, el que le sirva para manejo de radio buttons con Calendario
function FechaContrato(valor)
{
for(i=0;i<document.formName.radioID.length;i++)
{
var CH = document.formName.radioID[i].checked;

if(CH == true)
id = document.form.radioID[i].value;
//alert("valor id: "+id+" IF(checked==T/F) "+CH+" valor VALUE: "+valor);
}
document.getElementById(id).value = valor;
}

Etiquetas: calendario, funciones
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 03:35.