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
après ta réflexion, je viens de faire un test car ma liste ne contient que le service donc j'ai changé mes variables ainsi
et dans mon where ceci
ce qui me donne pour l'echo qui s'affiche
service: Archives date debut: 2011-09-01 date fin: 2011-09-08
c'est un peu mieux mais toujours pas de lignes
Ensuite j'ai testé la requête sous phpmyadmin et ne me retourne aucunes lignes
if (isset($_POST['date_debut'])and isset($_POST['date_fin'])and isset($_POST['service'])) { $date_debut=convertionDate($_POST['date_debut']); $date_fin=convertionDate($_POST['date_fin']); $service=$_POST['service']; echo "service: ".$service; echo "date debut: ".$date_debut; echo "date fin: ".$date_fin;
et dans mon where ceci
FROM servcart WHERE date_sortie BETWEEN '$date_debut' and '$date_fin' and service='$service'
ce qui me donne pour l'echo qui s'affiche
service: Archives date debut: 2011-09-01 date fin: 2011-09-08
c'est un peu mieux mais toujours pas de lignes
Ensuite j'ai testé la requête sous phpmyadmin et ne me retourne aucunes lignes
ok,es-tu sûre que dans ta BDD tu as des Archives dans cette plage de date? car phpmyadmin ne t'affiche rien,verifie que tu as bien des données qui vont correspondre.
J'espère que tu sélectionne aussi le service dans ta requête?
«Il faut avoir déjà beaucoup appris de choses pour savoir demander ce qu'on ne sait pas.»
Jean-Jacques ROUSSEAU
J'espère que tu sélectionne aussi le service dans ta requête?
«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
j'ai testé la requete à nouveau avec service='Archives'pas de retour de ligne et
avec uf='4517'cela me retourne des lignes
avec uf='4517'cela me retourne des lignes
uf c'est une colonne qui représente l'unité du service et service est rattaché à cette unité..mais pour la liste je n'ai pas besoin de l'uf et en plus j'ai fait une colonne identifiant autoincrémentée..;
si avec uf=... tu as des résultats et que avec service=... tu n'as rien,moi je comprends que dans ta BDD les services ne sont pas enregistrés avec la plage d'adresse correspondante. donne moi la structure de ta table concernée stp!
ok! donc tu me confirmes que tu as bien "Archives" comme service dans les enregistrements de ta table?
oui.....
(222, '4517 ', ' Archives', 1, '1720', '2011-09-08'),
(223, '4517 ', ' Archives', 10, '343 Couleur', '2011-09-07'),
(224, '4517 ', ' Archives', 10, '4096 A 2100 2200', '2011-09-14'),
(225, '4517 ', ' Archives', 1, ' BCI 6 E 520 Cyan', '2011-09-01'),
(222, '4517 ', ' Archives', 1, '1720', '2011-09-08'),
(223, '4517 ', ' Archives', 10, '343 Couleur', '2011-09-07'),
(224, '4517 ', ' Archives', 10, '4096 A 2100 2200', '2011-09-14'),
(225, '4517 ', ' Archives', 1, ' BCI 6 E 520 Cyan', '2011-09-01'),
Je remets le code en entier :
<?php function convertionDate($dateEur){ $rsl = explode ('/',$dateEur); $rsl = array_reverse($rsl); return implode($rsl,'-'); } //gestion de la ligne selectionnée 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> <?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> <code> <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'])and isset($_POST['service'])) { $date_debut=convertionDate($_POST['date_debut']); $date_fin=convertionDate($_POST['date_fin']); $service=$_POST['service']; echo "service: ".$service; echo "date debut: ".$date_debut; echo "date fin: ".$date_fin; $requete2 = "SELECT uf, service,cartouche,sortie_stock,DATE_FORMAT(date_sortie,'%d/%m/%Y') AS DateTemps FROM servcart WHERE date_sortie BETWEEN '$date_debut' and '$date_fin' and service='$service' order by DateTemps "; $req2 = mysql_query($requete2) or die( mysql_error() ) ; while ($donnees2=mysql_fetch_assoc($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['DateTemps']; ?></td> <td><?php echo $donnees2['sortie_stock']; ?></td> </tr> <?php }} ?> </form> </table></code>
j'ai testé avec la variable du début de mon code
donc dans mon
service: date debut: 2011-09-01date fin: 2011-09-08
if (isset($_POST['SERVICE'])) {$v_service=$_POST['SERVICE'];} else {$v_service="";}
donc dans mon
WHERE service='$v_service'j'ai ca dans mon echo
service: date debut: 2011-09-01date fin: 2011-09-08
bizarre ton problème.j'ai vu ta variable $service, tu la déclare lorsque tu fais un select dans ta BDD afin de l'afficher dans la liste déroulante.or au début de ton code,tu déclare $v_service comme une variable postée.il y a deja un souci là!
j'ai besoin de cette variable car si tu regardes bien dans mon select de la liste, je fais une boucle..donc je ne peux la déclarer que comme ça..ensuite j'ai changé le ceci : and isset($_POST['service']))
{
$v_service=$_POST['service']; et remis :
WHERE service=' $v_service' and et dans mes echo, j'ai ce résultat :
service: Archives date fin: 2011-09-08 date debut: 2011-09-01
mais pas de lignes...
{
$v_service=$_POST['service']; et remis :
WHERE service=' $v_service' and et dans mes echo, j'ai ce résultat :
service: Archives date fin: 2011-09-08 date debut: 2011-09-01
mais pas de lignes...
Salut!
j'ai bien analysé ta table et tes enregistrements,j'ai trouvé une petite incohérence:
regarde la table:
et maintenant les enregistrements:
ta table a 6 colonnes (id_service,uf,service,sortie_stock,cartouche,date_sortie) alors que tes enregistrements ont 7 colonnes (222,4517,vide, Archives,1,1720,2011-09-08) or le service dans ta table c'est la colonne "3" et dans tes enregistrements, c'est la colonne 4. bizarre!
Regarde bien,tu a dû oublié quelque chose.
j'ai bien analysé ta table et tes enregistrements,j'ai trouvé une petite incohérence:
regarde la table:
'id_service' int(5) NOT NULL AUTO_INCREMENT, 'uf' varchar(30) COLLATE utf8_unicode_ci DEFAULT NULL, 'service' varchar(30) COLLATE utf8_unicode_ci DEFAULT NULL, 'sortie_stock' int(5) DEFAULT NULL, 'cartouche' varchar(30) COLLATE utf8_unicode_ci DEFAULT NULL, 'date_sortie' date DEFAULT NULL, PRIMARY KEY ('id_service') ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=236 ;
et maintenant les enregistrements:
(222, '4517 ', ' Archives', 1, '1720', '2011-09-08'), (223, '4517 ', ' Archives', 10, '343 Couleur', '2011-09-07'), (224, '4517 ', ' Archives', 10, '4096 A 2100 2200', '2011-09-14'), (225, '4517 ', ' Archives', 1, ' BCI 6 E 520 Cyan', '2011-09-01'),
ta table a 6 colonnes (id_service,uf,service,sortie_stock,cartouche,date_sortie) alors que tes enregistrements ont 7 colonnes (222,4517,vide, Archives,1,1720,2011-09-08) or le service dans ta table c'est la colonne "3" et dans tes enregistrements, c'est la colonne 4. bizarre!
Regarde bien,tu a dû oublié quelque chose.
tu dois être mal réveillé car je compte bien 6 colonnes service est bien troisième position
(222, '4517 ', ' Archives', 1, '1720', '2011-09-08'),
(224, '4517 ', ' Archives', 10, '4096 A 2100 2200', '2011-09-14'),
(225, '4517 ', ' Archives', 1, ' BCI 6 E 520 Cyan', '2011-09-01'),
ensuite service dans ma table est en 3 et dans mes colonnes aussi
(223, '4517 ', ' Archives', 10, '343 Couleur', '2011-09-07'),
(222, '4517 ', ' Archives', 1, '1720', '2011-09-08'),
(224, '4517 ', ' Archives', 10, '4096 A 2100 2200', '2011-09-14'),
(225, '4517 ', ' Archives', 1, ' BCI 6 E 520 Cyan', '2011-09-01'),
ensuite service dans ma table est en 3 et dans mes colonnes aussi
(223, '4517 ', ' Archives', 10, '343 Couleur', '2011-09-07'),