Calendrier dans un formulaire

Signaler
Messages postés
1
Date d'inscription
vendredi 22 octobre 2004
Statut
Membre
Dernière intervention
16 janvier 2005
-
Messages postés
1
Date d'inscription
jeudi 11 août 2011
Statut
Membre
Dernière intervention
11 août 2011
-
salut
je souhaite ajouter un calendrier pour une date d'arrivée et de départ dans un formulaire sur
http://bblezebre.com/formulaire/index3.php
les calendriers s'affichent mais ne fonctionnent que lorqu'un seul est en ligne, l'autre crée un conflit. J'ai pris le script sur MyCalendar v1.1 par Pascal Manon

Pouvez-vous m'aider ou si vous avez mieux, je suis preneur. Merci

Alain

3 réponses

Messages postés
445
Date d'inscription
lundi 17 février 2003
Statut
Membre
Dernière intervention
22 mars 2007
1
Lors de l'appel à la popup du calendrier, il y a 3 paramètres dans la fonction javascript window.open(param1, param2, param3) :
param1 : c'est l'url à ouvrir
param2 : c'est le nom de la fenêtre que l'on ouvre
param3 (optionnel) : détails sur la position et les dimensions de la fenêtre.

Si à chaque appel de cette fonction, tu utilises le même nom (param2), l'url sera ouverte dans une fenêtre existante. Si tu veux tjs ouvrir une nouvelle fenêtre, utilise "_blank" :
window.open(param1, "_blank", param3)

Dans ton cas, tu peux simplement mettre 2 noms différents, par exemple

et

Je pense que ça devrairt fonctionner ainsi.
Bon dev//
Arnaud
Messages postés
1
Date d'inscription
jeudi 16 mars 2006
Statut
Membre
Dernière intervention
6 avril 2006

Bonjour,

Je suis débutant et j'utilise aussi le script MyCalendar que j'ai un peu modifié pour entrer dans un formulaire deux dates, l'une d'arrivée, l'autre de départ. Jusque là tout fonctionne.

Mais je souhaiterais empêcher la sélection des jours qui précèdent celui de la consultation ? Ensuite, j'aimerais que lors de la saisie dans mon fichier nommé Calendrier_01.php de la date d'arrivée , la valeur $arrivee aille directement dans Calendrier_02.php et que celui-ci s'ouvre à cette même date.

Celà faciliterait la saisie tout en éviterant de vérifier que la datte de départ $depart de Calendrier_02.php n'est pas inférieure à celle d'arrivée $arrivee saisie dans Calendrier_01.php. Actuellement j'arrive juste à vérifier que la date choisie ne soit pas inférieure à celle du jour de consultation. Pour le reste, je sais pas faire

Si quelqu'un pouvait m'éclairer, je lui serais très reconnaissant. D'avance merci.

A tout hasard, voici le script de Calendrier_01.php


<?php

// Section de configuration
$bgcolor
= "EEDDFF"
;
// Couleur de fond
$daybgcolor
="9DA4FF"
;
// Couleur des jours de la semaine
$dombgcolor
= "FFFFFF"
;
// Couleur du jour sélectionné
$dayholcolor
="EEDDFF"
;
// Couleur des WE

// Mois
$month
= array
( "janvier"
, "février"
, "mars"
, "avril"
, "mai"
, "juin"
, "juillet"
, "août"
, "septembre"
, "octobre"
, "novembre"
, "décembre"
);

// Semaine
$day
= array
("Di"
, "Lu"
, "Ma"
, "Me"
, "Je"
, "Ve"
, "Sa"
);

// Message d'erreur
$error01
= "Date invalide"

?>
<html>
<head>

<style>

#semaine {
font-family:
verdana;
color: #003399;
font-size: 9pt;}

#general {
font-family:
verdana;
font-size: 9pt;}

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,290)
;

function modifier
(jour
)
{
window
.location
.href
"calendrier_01.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
}

<?php

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"
)
;

}

?>
</script>
</head>

<?

echo "$bgcolor' onUnLoad= ''>\n"
;

echo "<center><form name ='MyCalendar'>\n"
;

echo "\n\"
;

// Affichage de la sélection du mois

echo \"<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"
;
$nmois
= $month
[$mois
-1];
// Le nom du mois est affecté à la variable $nmois pour la saisie finale

}

echo "</select>, \n\"

;

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

// Affichage des années: avant l'année en cours 0, après 3
$y
= date
("Y"
)
;

for
($i
=$y
-0;$i
<$y
+3;$i
++)

{

echo "<option value='$i'"
.($annee
($i
)?" selected"
:""
).">$i</option>\n"
;

}

echo "</select>, ----
&nbsp;, \n\"
;

echo \"----
<table width ='100%' cellspacing= '0' cellspading='0' border='0'>\n"
;

echo "----
\n"
;

// Affichage des jours et style font/couleur: ici bold

for($i
=0;$i
<7;$i
++)

{

echo ", \"

.$day
[$i
]. \"
</td>\" ;

}

echo \"\n----
, \n----
\n\"

;

// Première ligne des jours
$j
= date
(\"w\"
, mktime
(0,0,0,$mois
,1,$annee
))
;
$dom
=
1
;

for
($i
=0;$i
<7;$i
++)

{

if
($j
<= $i
)

{

echo \".($dom
== $jour
?" bgcolor='#$dombgcolor'"
:""
).">"
.$dom
++."
, \n\" ;

}

else

echo \"&nbsp;, \n\"
;

}

echo \"\n\"
;

// Le reste

for
($i
=0;$i
<5;$i
++)

{

echo \"----
\n\"

;

for
($j
= 0; $j
<7;$j
++)

{
$j_inac (<gras>$j</gras> =0
|| $j
== 6)
;

if ($dom
< $nbjmonth
[($mois
-1)])

echo \".($dom
== $jour
?" bgcolor='#$dombgcolor'"
:($j_inac
?" bgcolor='#$dayholcolor'"
:""
)).">"
.$dom
++."
, \n\" ;

else
if
(checkdate
($mois
,$dom
,$annee
))

echo \".($dom
== $jour
?" bgcolor='#$dombgcolor'"
:($j_inac
?" bgcolor='#$dayholcolor'"
:""
)).">"
.$dom
++."
, \n\"
;

else

echo \"&nbsp;, \n\"
;

}

echo \"\n\"
;

}

// vérification date entrée avec l'heure actuelle
$heure
= date
(\"H\"
);
$minute
= date
( \"i\"
);
$seconde
= date
(\"s\"
);

$timestamp
= mktime
($heure
, $minute
, $seconde
, $mois
, $jour
, $annee
);

// date actuelle directement en timestamp
$maintenant
= mktime
();

if
($timestamp
< $maintenant
)
{

echo \"$error01\"
;

}

else

echo \"\n----
&nbsp;&nbsp;
\n"

;

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

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

echo "</form></center>"
;

echo "\n"
;

?>
</html>
Messages postés
1
Date d'inscription
jeudi 11 août 2011
Statut
Membre
Dernière intervention
11 août 2011

slt ça marche pas.