Champs date + liste déroulante php
Résolu
fauve1512
Messages postés
206
Date d'inscription
Statut
Membre
Dernière intervention
-
fauve1512 Messages postés 206 Date d'inscription Statut Membre Dernière intervention -
fauve1512 Messages postés 206 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Dans ma page j'ai deux calender qui me permet dans les champs d'afficher deux date ex : entre :12/08/2010 et 08/09/2011 et une liste déroulante qui m'affiche les lignes selon mon choix(la liste fonctionne) maintenant je voudrais selon les choix des dates et le choix de la liste pouvoir afficher les lignes correspondantes ,je ne sais pas comment m'y prendre voici mon code :
Quelqu'un a-t-il la réponse de la manière de s'y prendre ??? Merci
Dans ma page j'ai deux calender qui me permet dans les champs d'afficher deux date ex : entre :12/08/2010 et 08/09/2011 et une liste déroulante qui m'affiche les lignes selon mon choix(la liste fonctionne) maintenant je voudrais selon les choix des dates et le choix de la liste pouvoir afficher les lignes correspondantes ,je ne sais pas comment m'y prendre voici mon code :
<td height="35" colspan="5" align="center" style="font-size:24px" >Statistiques de consommation <tr> <form id="service2" name="service2" method="POST" action="index.php?idpage=3"> <td height="30" colspan="5" align="center"><label>Entre : </label> <input type="text" id="datepicker" name="DATE_SORTIE" value="<?php echo date('d/m/Y'); ?>" /> <label>Et : </label> <input type="text" id="datepicker1" name="DATE_SORTIE" value="<?php echo date('d/m/Y'); ?>" /> <label></label></td> </form> </tr> <tr> <td height="32" colspan="5" align="left"> <form name="service" method="post" action="index.php?idpage=3"> <select name="service" onchange="submit"> <option selected> Choisissez un service</option> <?php $requete = "SELECT distinct service FROM servcart order by service"; $req = mysql_query($requete) or die( mysql_error() ) ; while ($donnees=mysql_fetch_array($req)) { $service = $donnees['service']; ?> <!-- affichage de la liste déroulante --> <option value="<?php echo $service ?>" <?php if ($service == $v_service) { echo 'Selected' ; } ?> ><?php echo $service?></option> <?php } ?> </select> <input type="submit" value="Rechercher" /> </form>
Quelqu'un a-t-il la réponse de la manière de s'y prendre ??? Merci
A voir également:
- Champs date + liste déroulante php
- Liste déroulante excel - Guide
- Liste déroulante en cascade - Guide
- Liste déroulante google sheet - Accueil - Guide bureautique
- Liste code ascii - Guide
- Site dangereux liste - Guide
145 réponses
salut,
voir les remarques et modifs
ensuite est ce que ton champ qui contient les dates est bien de type dDATE dans ta BDD, regardes comment sont affichées tes dates dans la BDD.
et regardes si c'est le même format que celles affichées par l'echo date_debut date_fin
donnes nous le résultat
voir les remarques et modifs
ensuite est ce que ton champ qui contient les dates est bien de type dDATE dans ta BDD, regardes comment sont affichées tes dates dans la BDD.
et regardes si c'est le même format que celles affichées par l'echo date_debut date_fin
donnes nous le résultat
<?php //gestion de la ligne selectionnée if (isset($_POST['uf'])) {$uf=$_POST['uf']; } else {$uf="";} if (isset($_POST['service'])) {$v_service=$_POST['service']; } else {$v_service="";} ?> <table width="580" height="209" border="3"> <form name="rechercher" method="post" action="index.php?idpage=3"> <tr> <td height="35" colspan="5" align="center" style="font-size:24px" >Statistiques de consommation </td> </tr> <tr> <td height="32" colspan="5" align="left"> <select name="service" > <option> Choisissez un service</option> <!-- tu ne doit pas mettre selected ici car par php plus bas si tu en as un autre ça fait conflit de toute façon par défaut c'esttjs la première ligne qui est selected --> <?php $requete = "SELECT distinct service FROM servcart order by service"; $req = mysql_query($requete) or die( mysql_error() ) ; while ($donnees=mysql_fetch_array($req)) { $service = $donnees['service']; ?> <!-- affichage de la liste déroulante --> <option value="<?php echo $service ?>" <?php if ($service == $v_service) { echo 'Selected' ; } ?> ><?php echo $service?></option> <?php } ?> </select> </td> </tr> <tr> <td height="30" colspan="5" align="center"> <label>Entre : </label> <input type="text" id="datepicker" name="date_debut" /> <label>Et : </label> <input type="text" id="datepicker1" name="date_fin" /> </td> </tr> <tr> <th height="28" colspan="5" scope="row" align="center"> <input type="submit" value="Rechercher" /> </th> </tr> <tr> <th width="52" height="36" bgcolor="#5ab9d8" scope="col">UF</th> <th width="159" bgcolor="#5ab9d8" scope="col">SERVICE</th> <th width="191" bgcolor="#5ab9d8" scope="col">CARTOUCHE</th> <th width="77" bgcolor="#5ab9d8" scope="col">DATE</th> <th width="63" bgcolor="#5ab9d8" scope="col">SORTIE STOCK</th> </tr> <?php if (isset($_POST['date_debut']) AND isset($_POST['date_fin'])) { $date_debut=$_POST['date_debut']; $date_fin=$_POST['date_fin']; //un petit echo pour voir la forme de tes dates echo "date debut: ".$date_debut; echo " date fin: ".$date_fin; /// $requete2 = "SELECT uf,service,cartouche,sortie_stock,date_sortie FROM servcart WHERE date_sortie BETWEEN '$date_debut' and '$date_fin' and uf='$uf' order by date_sortie "; $req2 = mysql_query($requete2) or die( mysql_error() ) ; while ($donnees2=mysql_fetch_array($req2)) { ?> <tr> <td height="22"><?php echo $donnees2['uf']; ?></td> <td><?php echo $donnees2['service']; ?></td> <td><?php echo $donnees2['cartouche']; ?></td> <td><?php echo $donnees2['date_sortie']; ?></td> <td><?php echo $donnees2['sortie_stock']; ?></td> </tr> <?php } } ?> </form> </table>
bonjour Alain_42
J'ai dans ma bdd la colonne date_sortie est type DATE, dans ma colonne c'est format us ensuite après echo j'ai ceci:
date debut: 01/09/2011 date fin: 08/09/2011
J'ai dans ma bdd la colonne date_sortie est type DATE, dans ma colonne c'est format us ensuite après echo j'ai ceci:
date debut: 01/09/2011 date fin: 08/09/2011
bah voila,le format est en fr et dans la BDD en us,normal qu'il ne t'affiche rien.tu dois envoyer dans ta BDD la date en format US afin que la comparaison se fasse
«Il faut avoir déjà beaucoup appris de choses pour savoir demander ce qu'on ne sait pas.»
Jean-Jacques ROUSSEAU
«Il faut avoir déjà beaucoup appris de choses pour savoir demander ce qu'on ne sait pas.»
Jean-Jacques ROUSSEAU
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
au format US c a d 2009-09-15
donc tu dois transformer tes dates debut et fin pour qu'elle soient au même format comme tu as fiat dans un post plus haut
donc tu dois transformer tes dates debut et fin pour qu'elle soient au même format comme tu as fiat dans un post plus haut
comme ceci !!!
$to_date = explode("/", $date_debut);
$date_debut = $to_date[2]."-".$to_date[1]."-".$to_date[0];
$to_date = explode("/", $date_fin);
$date_fin = $to_date[2]."-".$to_date[1]."-".$to_date[0];
mais cela ne fonctionne pas
$to_date = explode("/", $date_debut);
$date_debut = $to_date[2]."-".$to_date[1]."-".$to_date[0];
$to_date = explode("/", $date_fin);
$date_fin = $to_date[2]."-".$to_date[1]."-".$to_date[0];
mais cela ne fonctionne pas
est ce que les echo date_debut et fin sont bien ùaintenant au format mysql
et essayes avec la requette comme ça:
et essayes avec la requette comme ça:
$requete2 = "SELECT uf,service,cartouche,sortie_stock,date_sortie FROM servcart WHERE date_sortie BETWEEN ".$date_debut." AND ".$date_fin." AND uf='$uf' ORDER BY date_sortie
non car je ne sais pas comment faire j'ai essayé le code du post où je te posais la question si c'était dans ce style..mais cela ne marche pas..
j'ai fait ceci pour avoir mon echo date debut et fin en mysql
et ca :
date debut: 2011-09-01 date fin: 2011-09-08 mais toujours pas de lignes
<?php function convertionDate($dateEur){ $rsl = explode ('/',$dateEur); $rsl = array_reverse($rsl); return implode($rsl,'-'); } //gestion de la ligne selectionnée if (isset($_POST['uf'])) {$uf=$_POST['uf']; } else {$uf="";} if (isset($_POST['service'])) {$v_service=$_POST['service']; } else {$v_service="";} ?>
et ca :
<?php if (isset($_POST['date_debut']) and isset($_POST['date_fin'])) { $date_debut=convertionDate($_POST['date_debut']); $date_fin=convertionDate($_POST['date_fin']); echo "date debut: ".$date_debut; echo " date fin: ".$date_fin; $requete2 = "SELECT uf,service,cartouche,sortie_stock,date_sortie FROM servcart WHERE date_sortie BETWEEN ".$date_debut." AND ".$date_fin." and uf='$uf' order by date_sortie "; $req2 = mysql_query($requete2) or die( mysql_error() ) ; while ($donnees2=mysql_fetch_array($req2)) { ?> <tr> <td height="22"><?php echo $donnees2['uf']; ?></td> <td><?php echo $donnees2['service']; ?></td> <td><?php echo $donnees2['cartouche']; ?></td> <td><?php echo $donnees2[' date_sortie']; ?></td> <td><?php echo $donnees2['sortie_stock']; ?></td> </tr> <?php } } ?>et dans mon echo j'ai cela :
date debut: 2011-09-01 date fin: 2011-09-08 mais toujours pas de lignes
essaye comme ça:
et fais un petit echo de $uf pour voir si il correspond bien a la colonne dans la BDD
$requete2 = "SELECT uf,service,cartouche,sortie_stock,date_sortie FROM servcart WHERE date_sortie BETWEEN '".$date_debut."' AND '".$date_fin."' and uf='".$uf."' order by date_sortie
et fais un petit echo de $uf pour voir si il correspond bien a la colonne dans la BDD
j'ai mis echo '$uf'; ici
et j'ai en retour une ligne vide qui s'affiche
$req2 = mysql_query($requete2) or die( mysql_error() ) ; while ($donnees2=mysql_fetch_assoc($req2)) echo '$uf'; { ?>
et j'ai en retour une ligne vide qui s'affiche
j'ai trouvé la solution en faîte dans ma requête il y avait un souci dans la condition where uf=$uf avec déclaration de variable donc en enlevant la déclaration et cette condition maintenant j'ai le résultat voulu...
Merci à vous deux de m'avoir aider
Merci à vous deux de m'avoir aider
Bonjour
J'ai crié victoire trop vite car je me suis rendu compte en testant qu'il ne tenait pas compte de ma liste déroulante..je m'explique en enlevant dans le where uf='$uf', effectivement cela me récupérais la plage de date mais cela me récupère aussi tous les services par rapport à cette plage enfin de compte je n'ai même pas besoin de faire de sélection dans la liste déroulante car ce n'est que mes champs date qui sont pris en compte...et quand je remets cette condition dans ma requête je n'ai plus de lignes qui s'affichent..je deviens dingue, selon comme je code soit choix par liste et cela m'affiche le service avec toutes les dates donc non plage soit par champs dates et j'ai tous la plage date mais avec tous les services...je peux l'un ou l'autre mais pas les deux en même temps ..Au secours!!!!
J'ai crié victoire trop vite car je me suis rendu compte en testant qu'il ne tenait pas compte de ma liste déroulante..je m'explique en enlevant dans le where uf='$uf', effectivement cela me récupérais la plage de date mais cela me récupère aussi tous les services par rapport à cette plage enfin de compte je n'ai même pas besoin de faire de sélection dans la liste déroulante car ce n'est que mes champs date qui sont pris en compte...et quand je remets cette condition dans ma requête je n'ai plus de lignes qui s'affichent..je deviens dingue, selon comme je code soit choix par liste et cela m'affiche le service avec toutes les dates donc non plage soit par champs dates et j'ai tous la plage date mais avec tous les services...je peux l'un ou l'autre mais pas les deux en même temps ..Au secours!!!!
Salut!
j'avais déjà bu le champagne!!! bref,bien faisons un test:
comme pour les dates,fais un echo de $uf pour voir ce que cette variable contient à l'envoi.
j'avais déjà bu le champagne!!! bref,bien faisons un test:
comme pour les dates,fais un echo de $uf pour voir ce que cette variable contient à l'envoi.
Tu as pris un peu d'avance pour le champagne..si nous y arrivons ,je t'envoye la caisse... c'est mieux..lol
Bon, j'ai fait echo "uf: ".$uf; après mes variables et rien ne se passe
Bon, j'ai fait echo "uf: ".$uf; après mes variables et rien ne se passe
Je reprends ton code
donc tu me dis que ça ne t'affiche rien au niveau de UF,c'est bien ça?
Merci pour la caisse,je l'attends
<?php if (isset($_POST['date_debut']) and isset($_POST['date_fin'])) { $date_debut=convertionDate($_POST['date_debut']); $date_fin=convertionDate($_POST['date_fin']); echo "date debut: ".$date_debut; echo " date fin: ".$date_fin; echo " UF: ".$uf; $requete2 = "SELECT uf,service,cartouche,sortie_stock,date_sortie FROM servcart WHERE date_sortie BETWEEN ".$date_debut." AND ".$date_fin." and uf='$uf' order by date_sortie "; $req2 = mysql_query($requete2) or die( mysql_error() ) ; while ($donnees2=mysql_fetch_array($req2)) { ?> <tr> <td height="22"><?php echo $donnees2['uf']; ?></td> <td><?php echo $donnees2['service']; ?></td> <td><?php echo $donnees2['cartouche']; ?></td> <td><?php echo $donnees2[' date_sortie']; ?></td> <td><?php echo $donnees2['sortie_stock']; ?></td> </tr> <?php } } ?>
donc tu me dis que ça ne t'affiche rien au niveau de UF,c'est bien ça?
Merci pour la caisse,je l'attends
si rien ne s'affiche,donc ta variable n'est pas postée.vérifie bien la déclaration de tes variables.
pour l'adresse de livraison,je te l'envoyerai en MP quand tout sera ok (je sent que ça va marcher).
pour l'adresse de livraison,je te l'envoyerai en MP quand tout sera ok (je sent que ça va marcher).