Message de base dans menu déroulant
Résolu
Ninja_En_Short
Messages postés
133
Date d'inscription
Statut
Membre
Dernière intervention
-
Flohti Messages postés 162 Date d'inscription Statut Membre Dernière intervention -
Flohti Messages postés 162 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Voilà mon problème : je veux que la date courante (format mois/annee) s'affiche dans une liste déroulante qui contient une liste de tous les mois et annee au format plus haut. Ces mois et ces annes sont récupérés dans un base ODBC.
Voilà le code :
<form action="index.php" method="post">
<label for="annee">Choisissez l'année et le mois
</label>
<select name="choixMoisAn" id="choixMoisAn" align="right">
<?php
while($dataAn = odbc_fetch_array($res_annee))
{
$query_mois = "SELECT DISTINCT MOIS FROM MLB.CHMDPTPF WHERE AN = ".$dataAn['AN'] . " ORDER BY CHMMOI";
$res_mois = odbc_exec($cnx,$query_mois);
while($dataMois = odbc_fetch_array($res_mois))
{
?>
<option value="<?php echo $dataMois['MOIS']; ?>/<?php echo $dataAn['AN']; ?>">
<?php echo $dataMois['MOIS']; ?> /
<?php echo $dataAn['AN']; ?>
</option>
<?php
}
}
?>
</select>
<input type="submit" name="submitDate" value="Soumettre" />
</form>
Merci
Voilà mon problème : je veux que la date courante (format mois/annee) s'affiche dans une liste déroulante qui contient une liste de tous les mois et annee au format plus haut. Ces mois et ces annes sont récupérés dans un base ODBC.
Voilà le code :
<form action="index.php" method="post">
<label for="annee">Choisissez l'année et le mois
</label>
<select name="choixMoisAn" id="choixMoisAn" align="right">
<?php
while($dataAn = odbc_fetch_array($res_annee))
{
$query_mois = "SELECT DISTINCT MOIS FROM MLB.CHMDPTPF WHERE AN = ".$dataAn['AN'] . " ORDER BY CHMMOI";
$res_mois = odbc_exec($cnx,$query_mois);
while($dataMois = odbc_fetch_array($res_mois))
{
?>
<option value="<?php echo $dataMois['MOIS']; ?>/<?php echo $dataAn['AN']; ?>">
<?php echo $dataMois['MOIS']; ?> /
<?php echo $dataAn['AN']; ?>
</option>
<?php
}
}
?>
</select>
<input type="submit" name="submitDate" value="Soumettre" />
</form>
Merci
A voir également:
- Message de base dans menu déroulant
- Menu déroulant excel - Guide
- Recuperer message whatsapp supprimé - Guide
- Excel menu déroulant en cascade - Guide
- Base de registre - Guide
- Menu déroulant google sheet - Accueil - Guide bureautique
6 réponses
si je comrpend bien, tu veux ajouter en plus des dates de ta base, la date du jour même... c'est ça ?
si oui, il te faut créer une date par le biais de new Date()
ensuite de récupérer le jour et le mois et de les intégrer dans tes choix.
je vois un truc comme ça:
maDate = new Date();
<option value=maDate.getMonth()+"/"+maDate.getFullYear()>maDate.getMonth()+"/"+maDate.getFullYear()</option>
tu peux insérer ce choix avant ou après ton while ...
si oui, il te faut créer une date par le biais de new Date()
ensuite de récupérer le jour et le mois et de les intégrer dans tes choix.
je vois un truc comme ça:
maDate = new Date();
<option value=maDate.getMonth()+"/"+maDate.getFullYear()>maDate.getMonth()+"/"+maDate.getFullYear()</option>
tu peux insérer ce choix avant ou après ton while ...
Nein : j'ai une fonction affichage qui me montre un tableau avec des infos du type chiffre d'affaire de tel antenne sur tel mois de tel année, par défaut c'est le mois en cours, sinon c'est la date qu'on a choisit dans le menu déroulant.
Ce que je veux c'est que dans le menu déroulant s'affiche le mois et l'annee courant.
Par exemple là on est (encore un moment) le 07/2008, je veux que s'affiche dans le menu 07/2008 sans que j'ai à l'ouvrir (actuellement il affiche 0/0).
Ce que je veux c'est que dans le menu déroulant s'affiche le mois et l'annee courant.
Par exemple là on est (encore un moment) le 07/2008, je veux que s'affiche dans le menu 07/2008 sans que j'ai à l'ouvrir (actuellement il affiche 0/0).
je dois mal comprendre ...
maDate = new Date() affecte à la variable la date du jour, donc la date courant.
ensuite pour récupérer le mois tu fais maDate.getMonth() et de la même façon pour année avec maDate.getFullYear() ...
maDate contiendra alors 29/07/2008
maDate.getMonth() te donnera 7
maDate.getFullYear() te donnera 2008
maDate = new Date() affecte à la variable la date du jour, donc la date courant.
ensuite pour récupérer le mois tu fais maDate.getMonth() et de la même façon pour année avec maDate.getFullYear() ...
maDate contiendra alors 29/07/2008
maDate.getMonth() te donnera 7
maDate.getFullYear() te donnera 2008
Le problème c'est que ce que tu montres permet d'avoir la valeur dans le menu, ça je le gère déjà avec la requête SQL. Le but du jeu c'est de faire en sorte que le menu déroulant reste caler sur la valeur du mois et de l'année affichés.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
ha oh ... j'avais pas compris alors ... désolé... en plus là, je vois pas ... encore plus désolé -_-'
Salut,
D'abord, je comprends pas pourquoi tu ouvres et fermes autant de fois tes balises php,
Ensuite, comme dit Eldar57, tu peux placer la date courante avant ou après ton while(le grand bien sûr, sinon tu le verras plusieurs fois), après j'ai moyennement compris ce qu'il faisait. Moi je fais comme ça :
Après je ne sais pas si tes dates récupérées seront antérieurs ou postérieurs, dans le cas où tu ais les deux, il faut mettre la partie en gras dans ta boucle après une condition dont tu seras sûr qu'elle n'est valable qu'une fois :
Normalement là, il n'y a même plus besoin de se soucier des dates de la bases.
Je n'ai pas testé ! Adapte si tu as besoin...
Pour ce qui est de l'ouverture et fermeture des balises php, moi je ne les ouvre et ferme qu'une fois en début et fin de script, je place ce que je vais afficher dans une variable que j'appelle souvent $html.
EDIT : il s'en est passé des choses^^, ben laisse ce que je t'ai dis, pour avoir la date courante "sélectionné" (en gros), un petit selected="selected" dans l'option ou tu as la date courante, ou alors un value="+la valeur de l'option de late courante+" au select, ou encore dernière solution, placer l'option de la date courante en premier (simplement).
<?php while($dataAn = odbc_fetch_array($res_annee)) { $query_mois = "SELECT DISTINCT MOIS FROM MLB.CHMDPTPF WHERE AN = ".$dataAn['AN'] . " ORDER BY CHMMOI"; $res_mois = odbc_exec($cnx,$query_mois); while($dataMois = odbc_fetch_array($res_mois)) { ?> <option value="<?php echo $dataMois['MOIS']; ?>/<?php echo $dataAn['AN']; ?>"> <?php echo $dataMois['MOIS']; ?> / <?php echo $dataAn['AN']; ?> </option> <?php } } ?>
D'abord, je comprends pas pourquoi tu ouvres et fermes autant de fois tes balises php,
Ensuite, comme dit Eldar57, tu peux placer la date courante avant ou après ton while(le grand bien sûr, sinon tu le verras plusieurs fois), après j'ai moyennement compris ce qu'il faisait. Moi je fais comme ça :
<?php $dateNow = date("m/Y"); // pour l'année petit "y" sur 2chiffres, grand "Y" sur 4; echo '<option value="'. $dateNow .'">'. $dateNow .'</option>'; while($dataAn = odbc_fetch_array($res_annee)) { $query_mois = "SELECT DISTINCT MOIS FROM MLB.CHMDPTPF WHERE AN = ".$dataAn['AN'] . " ORDER BY CHMMOI"; $res_mois = odbc_exec($cnx,$query_mois); while($dataMois = odbc_fetch_array($res_mois)) { echo '<option value="'. $dataMois['MOIS']; .'/'. $dataAn['AN']; .'">'. $dataMois['MOIS']; .'/'. $dataAn['AN']; .'</option>'; } } // ou tu peux mettre ta date courante ici; ?>
Après je ne sais pas si tes dates récupérées seront antérieurs ou postérieurs, dans le cas où tu ais les deux, il faut mettre la partie en gras dans ta boucle après une condition dont tu seras sûr qu'elle n'est valable qu'une fois :
<?php $datePrevMonth = 0; // initialisation d'une variable pour notre condition; $dateNowMonth = date("m"); // celui là, tu le laisse avant; $dateNowYear = date("Y"); // avec son p'tit frère, pour pouvoir tester; while($dataAn = odbc_fetch_array($res_annee)) { $query_mois = "SELECT DISTINCT MOIS FROM MLB.CHMDPTPF WHERE AN = ".$dataAn['AN'] . " ORDER BY CHMMOI"; $res_mois = odbc_exec($cnx,$query_mois); while($dataMois = odbc_fetch_array($res_mois)) { if ($dataAn['AN'] == $dateNowYear and $dateNowMonth < $dataMois['MOIS']) { // si on est dans la même année et si notre date se trouve avant celle de la base; if ($dateNowMonth > $datePrevMonth['MOIS']) { // cette condition pour être sûr qu'on ne redise pas ce qu'il y avait dans la base; echo '<option value="'. $dateNowMonth .'/'. $dateNowYear .'">'. $dateNowMonth .'/'. $dateNowYear .'</option>'; } $dateOk = true; // pour se rappeler qu'on est passé par là; } echo '<option value="'. $dataMois['MOIS']; .'/'. $dataAn['AN']; .'">'. $dataMois['MOIS']; .'/'. $dataAn['AN']; .'</option>'; $datePrevMonth = $dataMois['MOIS']; // sauvegarde du dernière } } if (!$dateOk) { // si on est pas passé par la condition, normalement toutes les dates sont antérieurs; echo '<option value="'. $dateNowMonth .'/'. $dateNowYear .'">'. $dateNowMonth .'/'. $dateNowYear .'</option>'; } ?>
Normalement là, il n'y a même plus besoin de se soucier des dates de la bases.
Je n'ai pas testé ! Adapte si tu as besoin...
Pour ce qui est de l'ouverture et fermeture des balises php, moi je ne les ouvre et ferme qu'une fois en début et fin de script, je place ce que je vais afficher dans une variable que j'appelle souvent $html.
EDIT : il s'en est passé des choses^^, ben laisse ce que je t'ai dis, pour avoir la date courante "sélectionné" (en gros), un petit selected="selected" dans l'option ou tu as la date courante, ou alors un value="+la valeur de l'option de late courante+" au select, ou encore dernière solution, placer l'option de la date courante en premier (simplement).