Bonjour à tous,
j'ai de nouveau un problème avec la transmission d'un array via un formulaire.
Je vous mets mon code ici :
Pour l'année, pas de soucis. ça marche nikel vu que ce n'est pas un tableau.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107 function aujourdhui() { $anneeAuj = date("Y", time()); $moisAuj = date("m", time()); return array($anneeAuj, $moisAuj); } // On récupère l'année et le mois d'aujourd'hui // Ce qui va permettre de sélectionner par défaut l'année d'affichage des résultats et aussi les critères de recherche $aujourdhui = aujourdhui(); <div id="formulaire"> <div class="blocForm"> <div class="recherche"> <h2>Effectuer une Recherche</h2> <form method="post" action='admin_qpr.php'> // admin_qpr.php c'est le nom de ma page <fieldset title="Effectuer une recherche"> <input type="hidden" name="recherche" value="1" /> <p> <label for="annee">Année :</label> <select name="annee" size="1"> <option value="<?php echo $aujourdhui[0]; ?>"><?php echo $aujourdhui[0]; ?> </option> <?php $anneesPossibles = mysql_query("SELECT DISTINCT EXTRACT(YEAR FROM date_debut) date_debut FROM `qpr` WHERE `date_debut` NOT LIKE '".$aujourdhui[0]."%' ORDER BY `date_debut` ASC"); while($all_annee = mysql_fetch_object($anneesPossibles)) { ?> <option value='<?php echo $all_annee->date_debut; ?>'> <?php echo $all_annee->date_debut; ?> </option> <?php } ?> </select> </p> <p> <?php $periodeAnnee = array("01-01", "12-31"); $semestre1 = array("01-01", "06-30"); $semestre2 = array("07-01", "12-31"); $trimestre1 = array("01-01", "03-31"); $trimestre2 = array("04-01", "06-30"); $trimestre3 = array("07-01", "09-30"); $trimestre4 = array("10-01", "12-31"); ?> <input checked="checked" type="radio" name="periode" value="<?php echo urlencode(serialize($periodeAnnee));?>" id="annee" /> <label for="annee">Année entière</label><br /> <input type="radio" name="periode" value="<?php echo urlencode(serialize($semestre1));?>" id="semestre1" /> <label for="semestre1">1er Semestre</label><br /> <input type="radio" name="periode" value="<?php echo urlencode(serialize($semestre2));?>" id="semestre2" /> <label for="semestre2">2ème Semestre</label><br /> <input type="radio" name="periode" value="<?php echo urlencode(serialize($trimestre1));?>" id="trimestre1" /> <label for="trimestre1">1er Trimestre</label><br /> <input type="radio" name="periode" value="<?php echo urlencode(serialize($trimestre2));?>" id="trimestre2" /> <label for="trimestre2">2eme Trimestre</label><br /> <input type="radio" name="periode" value="<?php echo urlencode(serialize($trimestre3));?>" id="trimestre3" /> <label for="trimestre3">3ème Trimestre</label><br /> <input type="radio" name="periode" value="<?php echo urlencode(serialize($trimestre4));?>" id="trimestre4" /> <label for="trimestre4">4ème Trimestre</label><br /> </p> <input type="submit" value="Rechercher" alt="Rechercher" class="bouton" title="Effectuer une recherche"/> </fieldset> </form> </div> <!-- recherche --> </div> if(isset($_POST['recherche']) AND isset($_POST['periode']) AND isset($_POST['annee']) ) { if($_POST['recherche'] == 1) { $periode = @unserialize($_POST['periode']); $aujourdhui = array($_POST['annee'], $periode); echo "<br/>".$aujourdhui[0]."<br/>"; //ça affiche bien l'année echo "<br/>".$aujourdhui[1][0]."<br/>";// par contre pour la période j'ai un champ vide :( echo "<br/>".$aujourdhui[1][1]."<br/>"; // dans les 2 cas $reponse = mysql_query("SELECT * FROM qpr WHERE `date_debut` BETWEEN '".$aujourdhui[0]."-'".$aujourdhui[1][0]."' AND '".$aujourdhui[0]."-'".$aujourdhui[1][1]."' ORDER BY date_debut DESC"); } else { echo "Problème dans la recherche ! <br/>"; } } else { $reponse = mysql_query('SELECT * FROM qpr ORDER BY date_debut DESC'); } while ($donnees = mysql_fetch_array($reponse)) { // Affichage des données }
Mon problème se pose pour transmettre ma période (je veux pouvoir afficher les résultats par semestre ou par trimestre)
Dans mon formulaire, je sérialise pourtant mon array avec urlencode(serialize())
et quand je le reçoit j'utilise @unserialize()
mais apparemment ça ne fonctionne pas
Quelqu'un aurait-il une idée ?
Merci de vos réponses.
Partager