Page 1 sur 1

Calendrier sur formulaire

Posté : 29 août 2005, 17:41
par Tomcat92fr
Bonjour

J’ai trouvé un calendrier et je souhaite l’intégrer dans un site que je suis en train de réaliser dans la partie Admin ci-dessous le code que j’utilise



Coté formulaire

<input name='date' type='text' id="_SJ_date">

<input type='button' onClick="window.open('mycalendar.php?form=ajouter&elem= date','Calendrier','width=200,height=220')" value='...'>


Le lien que renvoie le bouton est

http://127.0.0.1/cuisine/mycalendar.php ... &elem=date

voilà ce qu’il me répond

Notice: Undefined variable: form in c:\program files\easyphp\www\cuisine\mycalendar.php on line 190
Notice: Undefined variable: elem in c:\program files\easyphp\www\cuisine\mycalendar.php on line 190



Voilà la ligne concernée

Ligne190 echo "\n<tr><td colspan='10' align='center'><input type='button' onclick='window.opener.document.forms[\"$form\"].elements[\"$elem\"].value=\"$annee-$mois-$jour\";window.close()' value='Valider'>&nbsp;&nbsp;<input onclick='window.close()' type='button' value='Annuler'></td></tr></table>\n" ;


J’ai fait différents essais, mais rien ni fait je ne comprends pas.

Ce calendrier vient de ce site http://pascal.manon.free.fr/ressources/calendar/

Merci de m’éclairer de vos lumières

Tomcat

Posté : 29 août 2005, 18:10
par tibougnat
Essayes en utilisant $_GET['form'] et pareil pour l'autre variable.

pour comprendre :
http://www.phpdebutant.org/article113.php

Posté : 29 août 2005, 19:06
par smarties
http://127.0.0.1/cuisine/mycalendar.php?form=ajouter&elem=date
127.0.0.1 est ton IP de boucle locale, lance une fenetre dos (executer -> cmd) et fait ipconfig pour connaitre ton ip internet :wink:

Posté : 30 août 2005, 13:12
par Tomcat92fr
Le $_GET['form'] fonctionne (pour que cela fonctionne j'ai été obligé de mettre 2 fois la même valeur), mais ne règle pas complètement le problème. je n'ai plus les erreurs, mais ça ne fonctionne toujours pas :( #-o #-o ](*,)

C'esta à dire maintenant ça ouvre le calendrier mais losrque je selectionne une date et que je valide cela ne renvois pas la valeur qui au passage doit etre formatée 0000-00-00 (yyyy-mm-dd).

Voila je vous passe les tenants et les aboutissants.

Smarties t'es gentil, mais je sais quand même ce que je fais au niveau des IPs je suis en environnement test donc en local et de fait je ne vois pas la pertinence de ta réponse [-X :langue: pas la peine de me jouer du :-({|= quand même :lol: :lol:

Formulaire :

Code : Tout sélectionner

<form action="ajouter2_SJ.php" method="get" name='form' onSubmit="YY_checkform('ajouter');return document.MM_returnValue"> <input name='date' type='text' id="_SJ_date"> <input name="button" type='button' onClick="window.open('mycalendar.php?form=ajouter&elem=_SJ_date','Calendrier','width=200,height=220')" value='...'></form>
Le calendrier
<?
  // Section de configuration

  $bgcolor="dddddd" ;         // Couleur de fond
  $daybgcolor="aaaaaa" ;    // Couleur des jours de la semaine
  $dombgcolor="eeeeee" ;   // Couleur du jour sélectionné
  $dayholcolor="cccccc" ;      // Couleur des WE

  // Mois
  $month[0] = "Janvier" ;
  $month[1] = "Février" ;
  $month[2] = "Mars" ;
  $month[3] = "Avril" ;
  $month[4] = "Mai" ;
  $month[5] = "Juin" ;
  $month[6] = "Juillet" ;
  $month[7] = "Août" ;
  $month[8] = "Septembre" ;
  $month[9] = "Octobre" ;
  $month[10] = "Novembre" ;
  $month[11] = "Décembre" ;

  // Première lettre des jours de la semaine
  $day[0] = "D" ;
  $day[1] = "L" ;
  $day[2] = "M" ;
  $day[3] = "M" ;
  $day[4] = "J" ;
  $day[5] = "V" ;
  $day[6] = "S" ;

  $error01 = "Erreur : date invalide"

?>
<html>
<head>
<style>
 #general
 {
  font-family: Arial;
  font-size: 10pt;
 }

 a:link,a:active,a:visited
 {
        text-decoration:none;
        color:#000000;
 }

 a:hover
 {
        text-decoration:underline;
        color:#000000;
 }

</style>
<script language='JavaScript'>
 window.resizeTo(200,270) ;
 function modifier (jour)
 {
  window.location.href = "mycalendar.php?form=<?echo $form;?>&elem=<?echo $elem;?>&mois=" + document.forms["MyCalendar"].elements['month'].options[document.forms["MyCalendar"].elements['month'].selectedIndex].value + "&jour=" + jour +"&annee=" + document.forms["MyCalendar"].elements['year'].options[document.forms["MyCalendar"].elements['year'].selectedIndex].value

 }
<?
  if (!isset($jour))
       $jour = date("j") ;

  if (!isset($mois))
       $mois = date("m") ;

  if (!isset($annee))
       $annee = date("Y") ;

    // nombre de jours par mois
  $nbjmonth[0] = 31 ;
  $nbjmonth[1] = ($annee%4==0?($annee%100==0?($annee%400?29:28):29):28) ;
  $nbjmonth[2] = 31 ;
  $nbjmonth[3] = 30 ;
  $nbjmonth[4] = 31 ;
  $nbjmonth[5] = 30 ;
  $nbjmonth[6] = 31;
  $nbjmonth[7] = 31 ;
  $nbjmonth[8] = 30 ;
  $nbjmonth[9] = 31 ;
  $nbjmonth[10] = 30 ;
  $nbjmonth[11] = 31 ;

  if(!checkdate($mois,$jour,$annee))
  {
   echo "alert('$error01')\n" ;
   $jour = date("j") ;
   $mois = date("m") ;
   $annee = date("Y") ;
  }

  // Calcul du jour julien et du numéro du jour
  $HR = 0;
  $GGG = 1;
  if( $annee < 1582 ) $GGG = 0;
  if( $annee <= 1582 && $mois < 10 ) $GGG = 0;
  if( $annee <= 1582 && $mois == 10 && 1 < 5 ) $GGG = 0;
  $JD = -1 * floor(7 * (floor(($mois + 9) / 12) + $annee) / 4);
  $S = 1;
  if (($mois - 9)<0) $S=-1;
  $A = abs($mois - 9);
  $J1 = floor($mois + $S * floor($A / 7));
  $J1 = -1 * floor((floor($J1 / 100) + 1) * 3 / 4);
  $JD = $JD + floor(275 * $mois / 9) + 1 + ($GGG * $J1);
  $JD = $JD + 1721027 + 2 * $GGG + 367 * $annee - 0.5;

$jj = (($JD+.5)%7) ;
?>
</script>
</head>
<?
$form = $_GET['form'];
$elem = $_GET['form'];
  echo "<body bgcolor='#$bgcolor' onUnLoad=''>\n" ;

  echo "<center><form name='MyCalendar'>\n" ;
  echo "<table width='170' cellspacing='0' cellspading='0' border='0'><tr>\n" ;

  // Affichage de la sélection du mois et de l'année
  echo "<td><select name='month' onChange=\"modifier($jour)\">\n" ;

  for ($i=0;$i<12;$i++)
  {
   echo "<option value='".($i+1)."'".($mois==($i+1)?" selected":"").">".$month[$i]."</option>\n" ;
  }

  echo "</select></td>\n" ;

  echo "<td align='right'><select name='year' onChange=\"modifier($jour)\">\n" ;

  $y = date("Y") ;
  for ($i=$y-10;$i<$y+10;$i++)
  {
   echo "<option value='$i'".($annee==($i)?" selected":"").">$i</option>\n" ;
  }

  echo "</select></td></tr><tr><td colspan='2'>&nbsp;</td></tr>\n" ;

  echo "<tr><td colspan='2'><table width='100%' cellspacing='0' cellspading='0' border='0'>\n" ;
  echo "<tr>\n" ;

  // Affichage des jours
  for($i=0;$i<7;$i++)
  {
   echo "<td width='14%' bgcolor='#$daybgcolor'><font id='general'>".$day[$i]."</font></td>" ;
  }

  echo "</tr>\n<tr><td colspan='7'> </td></tr>\n<tr>\n" ;

  // Première ligne des jours
  $j = $jj ;//date ("w", mktime (0,0,0,$mois,1,$annee)) ;
  $dom = 1 ;
  for ($i=0;$i<7;$i++)
  {
   if ($j<=$i)
   {
        echo "<td".($dom==$jour?" bgcolor='#$dombgcolor'":"")."><a href='javascript:modifier($dom)'><font id='general'>".$dom++."</font></a></td>\n" ;
   }
   else
       echo "<td>&nbsp;</td>\n" ;
  }

  echo "</tr>\n" ;
  // Le reste
  for ($i=0;$i<5;$i++)
  {
   echo "<tr>\n" ;
   for ($j=0;$j<7;$j++)   
   {    
	$j_inac = ($j==0 || $j==6) ;
	
	if($dom < $nbjmonth[($mois-1)])
         echo "<td".($dom==$jour?" bgcolor='#$dombgcolor'": ($j_inac ?" bgcolor='#$dayholcolor'":""))."><a href='javascript:modifier($dom)'><font id='general'>".$dom++."</font></a></td>\n" ;
    else if (checkdate($mois,$dom,$annee))
         echo "<td".($dom==$jour?" bgcolor='#$dombgcolor'": ($j_inac ?" bgcolor='#$dayholcolor'":""))."><a href='javascript:modifier($dom)'><font id='general'>".$dom++."</font></a></td>\n" ;
    else
         echo "<td>&nbsp;</td>\n" ;

   }
   echo "</tr>\n" ;
  }

  echo "\n<tr><td colspan='10' align='center'><input type='button' onclick='window.opener.document.forms[\"$form\"].elements[\"$elem\"].value=\"$annee-$mois-$jour\";window.close()' value='Valider'>&nbsp;&nbsp;<input onclick='window.close()' type='button' value='Annuler'></td></tr></table>\n" ;

  echo "\n</tr></table>\n" ;

  echo "</td></tr></table>" ;
  echo "</form></center>" ;

  echo "</body>\n" ;
?>
</html>