bonsoir
je me suis un peu égaré, le sujet initial était comment implémenter un datepicker.
c'est terminé,
Merci a tous ceux qui m’ont aidé.
Par contre pour ceux qui sont comme moi novice je vous joint quelques truc que j'ai mis en place.
Mes méthodes ne sont surement pas conventionnelle, mais au moins on a une base de départ, je suis débutant
-1) truc simples
-déterminer la date de départ (griser les dates en deçà des données de la BDD)
-Déterminer la date max a afficher
-implémenter un bouton jour en cours
-faire apparaitre les jours du mois suivant (31,01,02)
très pratique car après le 31 on sélectionne le 01, ce qui fait passer le calendrier au mois suivant automatiquement
-1) truc plus compliquer
-Trouver une solution pour que lorsque l'on navigue de jour en jours, cela désactive la fonction d'origine qui fait que le calendrier par défaut se cale sur le jour courant
-Puis trouver une fonction qui simule l’appuie sur le bouton envoyer, tout en gardant ce bouton SUBMIT( je pense a IE).
-déterminer la date de départ (griser les dates en deçà des données de la BDD)
soit on la code en dur
minDate:'18/12/2014',
soit on la calcule en allant extraire la première de sa BDD
attention en initialisant sa variable $dateMini il faut bien la construire
var1 contenant un simple quote concaténé a sa variable et concaténé var2 contenant le simple quote et la virgule
En décomposant ça donne quelque chose comme cela:
le \ sert juste a échapper le '
Déterminer la date max a afficher
la impossible de la mettre en dur, moi j'ai choisit de mettre la date du jour dans une variable
même méthode que ci dessus
construit comme cela:
Code : Tout sélectionner
var date = new Date();
var month = date.getMonth()+1;
var day = new Date().getDate();
var year = date.getFullYear();
var datemaxi = (day + '/' + month + '/' + year);
-implémenter un bouton jour en cours
-faire apparaitre les jours du mois suivant (31,01,02)
se fait en deux temps:
-Trouver une solution pour que lorsque l'on navigue de jour en jours, cela désactive la fonction d'origine qui fait que le calendrier par défaut se cale sur le jour courant
même principe que dessus
La concaténation je l'ai fait dans une condition IF, ainsi si l'on appuis sur envoyer sans avoir choisit de date, par défaut cela affiche les 24 dernières heures, ou ce que vous voulez. il ne faut jamais avoir ses variables vides sinon cela fait une erreur d'initialisation du calendrier
on peut décomposer la démarche comme cela:
Code : Tout sélectionner
$varA;
$varA = '\'';
$varB;
$varB = '\,'';
global $datePostDefaut;
if(!empty($_POST['depart'])) {
$datePostDefaut = $varA .($_POST['depart']) .$varB;
}
else{
$datePostDefaut = $varA.date('d/m/Y').$varB;
}
voila ça donne ça
Code : Tout sélectionner
// inilisation du calendrier
$(function() {
$.datepicker.setDefaults( $.datepicker.regional['fr']);
$( "#datepicker" ).datepicker({
showButtonPanel: true,// affiche des boutons sous le calendrier
showOtherMonths: true, // affiche les autres mois
selectOtherMonths: true, // possibilités de sélectionner les jours des autres mois
dateFormat : 'dd/mm/yy',// affiche par defaut la date en francais
minDate: <?php echo$dateMini; ?> , // empeche d'afficher une date inferieure a ma BDD
maxDate: datemaxi, // empeche d'afficher une date superieur au jour construit
defaultDate: <?php echo$datePostDefaut; ?> ,date par défaut sélectionnée dans le calendrier
changeMonth: true, // listes déroulantes pour les mois
changeYear: true, // listes déroulantes pour les années
showOn: "button", // affiche le calendrier via un bouton image
buttonImage: "10-calendar-icon.png",
});
});
Maintenant la fonction qui simule l'apuie sur le bouton envoyer ( SBMIT)
elle n'est pas de moi, je l'ai trouvé en fouillant les forums, je la donne brute de fonderie
Code : Tout sélectionner
<script type="text/javascript">
//fonction javascript simulant l'appui sur un bouton:
//le formulaire DOIT avoir pour id "formulaire" et le bouton avoir pour id "suivre"
function suite ()
{
//simulation du clic sur l'objet d'id 'suivre'
formulaire.suivre.click();
}
</script>
<form method="post" id = "formulaire" action=""class="ui-widget">
<!-- onchange= 'suite()'! quand la valeur change, la fonction suite est-->
<!-- appelée auto. onblur ='suite()': quand le focus quitte ce champ-->
<label style="color: #000000">Choisir la date du graphique</label>
<input style="width: 75px" type="hidden" name="depart" Id="datepicker" size="10" onchange="suite()" / >
<input type="submit" id ="suivre" value="Envoyer">
</form>
Voila, a votre dispositions si besoin d'informations complémentaires
je vérifierais demain si je n'ai pas fait d'erreur dans mes copier coller car j'ai remis pas mal en forme pour qu ça tienne sur une lignes
Alain
EDIT
je viens de placer mon script en ligne, mais alimenté par DB4FREE, j'ai un temps de chargement très long. de ce fait la simulation d’appuis sur le bouton SUBMIT ne saute pas au yeux, en local, des la date choisie le graph se construit et s'affiche. Donc inutile d'appuyer sur envoie.
http://mapetitemeteo.esy.es/48h_teleinfo.php