Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD
PHP & SGBD Forum d'entraide sur les SGBD avec PHP. Avant de poster : FAQ BDD, toutes les FAQ PHP, cours BDD et sources BDD
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 06/06/2006, 16h29   #1
Membre à l'essai
 
Inscription : mai 2006
Messages : 171
Détails du profil
Informations forums :
Inscription : mai 2006
Messages : 171
Points : 21
Points : 21
Par défaut Navigation par date (derniere page)

Bon je m'explique mieux :

J'ai une page (index.php) ou figure dans les titres des colonnes des formateurs, et dans les titres des lignes les différentes plages horaires.
Dans chaque case de ce tableau figure un lien vers ma page reservation.php

Je voudrais que si je clique sur le lien de la case qui correspond au formateur Bidul pour la plage horaire de 10h00, dans ma page reservation.php les champs formateur et heure soit préselectionnés (ce sont des listes) sur l'heure et le formateur correspondant. Et que une fois la réservation validée, la case de la page index qui correspond à l'heure et au formateur, prenne pour valeur certains parametres de ma réservation.

Je vous ai mis un apercu de ma page index et de ma page réservation en annexe ( les O sont les liens ).


Je ne sais pas si je m'explique bien, demandez moi quelque précisions si vous ne comprenez pas.


Je vous met mon code en dessous :

Index.php :

Code :
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
<?
echo "<table width='100%' bordercolor='#000066' border=0><tr><td></td>";
$sql = "select num_formateur, nom_formateur, prenom_formateur, description_formateur from formateur order by num_formateur";
$result = mysql_query($sql);
$nbLigne=0;
$heure='08';
$minute='00';
 
while($nbLigne<=44)
{
echo "
 
";
 
	while($row = mysql_fetch_row($result))
	{
		$Formateur = $row[1];
		$Num = $row[2];
		$Description = $row[3];
		echo "
 
		<td bgcolor='#000066'><a class='formateur'><center> $Formateur $Num <br> $Description</center></a></td>";
	}	
 
	require('rqtFormateur.php');
 
 
	$nbLigne=$nbLigne+1;
}
 
echo "</tr> </table>";
?>


RqtFormateur.php

Code :
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
<?
 
if ($heure=='9') {
 
$heure='09';
}
 
echo "</tr> <tr><td bgcolor='#99CCFF'><center><small>$heure:$minute</small></center></td>";
 
$sql = "select num_formateur, nom_formateur, prenom_formateur, description_formateur from formateur order by num_formateur";
$result = mysql_query($sql);
 
$minute=$minute+15;
 
if ($minute==60) {
 
$minute='00';
$heure=$heure+1;
}
 
	while($row = mysql_fetch_row($result))	
	{
	echo"
 
 
		<td> <font size='-3'><small><center><a class='lien2' href='reservation.php'>O</a></center></small></font>
		</td>";
	}
 
?>


Reservation.php :

Code :
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
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
<FORM METHOD='POST' NAME='resa' id='resa' ACTION='resa_bdd.php'>
 
 
<table border=0 width='30%'>
  <tr>
	<td width='40%'>
	  <h6>Date : </h6>
	    <blockquote>";
 
			require('calendar.php');
 
echo "		</blockquote> 
    </td>
 
  </tr>
</table>
 
 
<table border=0 width='90%'>
  <tr>
    <td width='27%'>   
	  <h6>Heure : </h6><small>
	    <blockquote>
			<SELECT NAME='heure' id='heure'>
			<option value='8' selected>08</option>
			<option value='9'>09</option>
			<option value='10'>10</option>
			<option value='11'>11</option>
			<option value='12'>12</option>
			<option value='13'>13</option>
			<option value='14'>14</option>
			<option value='15'>15</option>
			<option value='16'>16</option>
			<option value='17'>17</option>
			<option value='18'>18</option>
			</select>
			Heures
			<SELECT NAME='minute' id='minute'>
			<option value='0' selected>00</option>
			<option value='15'>15</option>
			<option value='30'>30</option>
			<option value='45'>45</option>
			</select>
			Minutes</small>
		</blockquote>
    </td>
	    <td width='35%'>  
 
	  <h6>Durée : </h6><small>
	    <blockquote>
			<SELECT NAME='heure_duree' id='heure_duree'>
			<option value='0'>0</option>
			<option value='1'>1</option>
			<option value='2'>2</option>
			<option value='3' selected>3</option>
			<option value='4'>4</option>
			<option value='5'>5</option>
			</select>
				Heures
			<SELECT NAME='minute_duree' id='minute_duree'>
			<option value='0'>00</option>
			<option value='15'>15</option>
			<option value='30' selected>30</option>
			<option value='45'>45</option>
			</select>
				Minutes</small>
		</blockquote>
	</td>  
 
		<td width='20%'>
	  <h6>Type : </h6>
		<blockquote>
			<SELECT NAME='type' id='type'>";
 
						$type = 'select num_type, nom_type from type_reservation order by num_type';
						$res = mysql_query($type);
						while($val=mysql_fetch_array($res))
						{
							echo '<option value='.$val['num_type'].'> '.$val['nom_type'].' </option>';
						}
 
echo "			</select>	
		</blockquote>
    </td>
 
  </tr>
 
  <tr>
 
	<td width='27%'>
	  <h6>Formateur : </h6>
		<blockquote>
			<SELECT NAME='formateur' id='formateur'>";
 
						$formateur = 'select num_formateur, nom_formateur, prenom_formateur from formateur order by num_formateur';
						$res = mysql_query($formateur);
						while($val=mysql_fetch_array($res))
						{
							echo '<option value='.$val['num_formateur'].'> '.$val['nom_formateur'].'&nbsp'.$val['prenom_formateur'].' </option>';
						}
 
echo "			</select>	
		</blockquote>
    </td>
	<td width='35%'>
	  <h6>Description : </h6>		
		<blockquote>
			<TEXTAREA NAME='description' id='description' ROWS=5 COLS=40 WRAP='virtual'></TEXTAREA>
		</blockquote>
    </td>
	<td width='20%'>
	  <h6>Statut : </h6>
		<blockquote>
			<SELECT NAME='statut' id='statut'>";
 
						$statut = 'select num_statut, nom_statut from statut order by num_statut';
						$res = mysql_query($statut);
						while($val=mysql_fetch_array($res))
						{
							echo '<option value='.$val['num_statut'].'>  '.$val['nom_statut'].' </option>';
						}
 
echo "			</select>	
		</blockquote>
    </td>
  </tr>
</table>
 
 
<table border=0 width='90%'>
 
  <tr>
 
    <td width='27%'>  
 
	  <h6>
	  <input type='radio' name='coeff' id='coeff' checked onClick='change()'/> Coefficient
	  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
	  <input type='radio' name='coeff' id='autre' onClick='change()'/> Autre
	  </h6>
	    <blockquote><blockquote>
			<div class=tabCache id=coeff>
			<SELECT id='lstChamp' name='coeff' style='visibility:visible'>";
 
					$coeff = 'select num_coeff, valeur_coeff from coefficient order by num_coeff';
					$res = mysql_query($coeff);
					while($val=mysql_fetch_array($res))
					{
						echo '<option value='.$val['num_coeff'].'> '.$val['valeur_coeff'].' </option>';
					}
 
echo "			</select>
			</div>
			<div class=tabCache id=autre>
			<INPUT id='txtChamp' name='autre' style='visibility:hidden' SIZE=3/>
			</div>
    </td>	
 
    <td width='35%'>
	  <h6>Observations Diverses : </h6>	  
	  <blockquote>
			<TEXTAREA  NAME='observation' id='observation' ROWS=5 COLS=40 WRAP='virtual'></TEXTAREA>
	  </blockquote>
    </td>
 
	<td width='20%'>
 
 
<center>
  <INPUT TYPE='submit' name='enregistrer' id='enregistrer' VALUE='Enregistrer'/>
  <INPUT type='hidden' name='afficher' id='afficher' value='ok'/>
 
</FORM>
 
 
 
<a href='administration.php' class='lien'>Retour à l'administration</a>
</center>
 
 
	</td>
  </tr>
</table>";
 
?>

Désolé le code est grand, j'espere que ca ne vous démotivera pas pour m'aider :s
Sandara est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/06/2006, 16h32   #2
Membre Expert
 
Inscription : avril 2006
Messages : 1 338
Détails du profil
Informations personnelles :
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations forums :
Inscription : avril 2006
Messages : 1 338
Points : 1 315
Points : 1 315
pas une la motivation (fin de journée ) de lire ton code par contre...pour qu'une valeur d eta liste soit présellectionné faut utilisé SELECTED

en gros tu test si la valeur de la liste et la meeeme que celle selectionné si oui SELECTED
__________________
Stay in Bed .. Save Energy
boo64 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/06/2006, 16h36   #3
Membre à l'essai
 
Inscription : mai 2006
Messages : 171
Détails du profil
Informations forums :
Inscription : mai 2006
Messages : 171
Points : 21
Points : 21
Comment savoir si c'est elle qui est sélectionnée ?
Comment récupérer le formateur et l'heure auquel correspond la case ou j'ai cliqué ?


PS : J'ai rajouté des annexes pour ceux qui n'avait pas vu
Sandara est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/06/2006, 18h09   #4
Membre Expert
 
Inscription : avril 2006
Messages : 1 338
Détails du profil
Informations personnelles :
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations forums :
Inscription : avril 2006
Messages : 1 338
Points : 1 315
Points : 1 315
ba avec post ou get...
ou si c'est pour continué
dans le formulaire javascruipt
__________________
Stay in Bed .. Save Energy
boo64 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/06/2006, 08h57   #5
Membre à l'essai
 
Inscription : mai 2006
Messages : 171
Détails du profil
Informations forums :
Inscription : mai 2006
Messages : 171
Points : 21
Points : 21
Je ne vois toujours pas concretement comment faire.

Peut tu me donner un exemple disons pour Jean-Yves à 08:00.

Je pense que si je voit a peu pres la marche a suivre il me sera plus facile de comprendre ensuite !
Sandara est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/06/2006, 09h21   #6
Expert Confirmé

 
Avatar de Amara
 
Inscription : juillet 2004
Messages : 2 684
Détails du profil
Informations personnelles :
Localisation : France, Sarthe (Pays de la Loire)

Informations forums :
Inscription : juillet 2004
Messages : 2 684
Points : 2 910
Points : 2 910
Pour Jean-Yves c'est un cas à part


Tu dois construire tes liens en mettant reservation.php?formateur=Jean-Yves&heure=10:00, comme ça tu récupères les valeurs dans ta page réservation.php en faisant $_GET['formateur'] et $_GET['heure'].

En espérant que ce soit ça le problème...
Amara est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/06/2006, 09h34   #7
Membre à l'essai
 
Inscription : mai 2006
Messages : 171
Détails du profil
Informations forums :
Inscription : mai 2006
Messages : 171
Points : 21
Points : 21
Oui c'est bien ca mais je ne voit pas comment récupérer concretement Jean-Yves et 10h00 sachant que j'utilise des boucles dans ma page d'index.
Sandara est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/06/2006, 09h46   #8
Expert Confirmé

 
Avatar de Amara
 
Inscription : juillet 2004
Messages : 2 684
Détails du profil
Informations personnelles :
Localisation : France, Sarthe (Pays de la Loire)

Informations forums :
Inscription : juillet 2004
Messages : 2 684
Points : 2 910
Points : 2 910
$Formateur $Num ça correspond pas à ça ? Je comprends pas, tu affiches Jean-Yves et 10:00 et tu ne sais pas comment récupérer Jean-Yves et 10:00 Quelque chose m'échappe...
Amara est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/06/2006, 09h51   #9
Membre à l'essai
 
Inscription : mai 2006
Messages : 171
Détails du profil
Informations forums :
Inscription : mai 2006
Messages : 171
Points : 21
Points : 21
Ce que je ne sais pas faire c'est récupéré Jean-Yves si je clique a cet endroit, ou récupérer Gorgette si je clique à un autre endroit. Les formateurs je les ai affiché à l'aide d'une requete et d'une boucle, idem pour l'heure, mais pour récupéré ces 2 parametres en fonction de l'endroit ou je clique je ne vois pas comment m'y prendre ... :s
Sandara est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/06/2006, 10h01   #10
Expert Confirmé

 
Avatar de Amara
 
Inscription : juillet 2004
Messages : 2 684
Détails du profil
Informations personnelles :
Localisation : France, Sarthe (Pays de la Loire)

Informations forums :
Inscription : juillet 2004
Messages : 2 684
Points : 2 910
Points : 2 910
Edit :


Code :
1
2
3
 
 
echo "<td> <font size='-3'><small><center><a class='lien2' href='reservation.php?formateur=" . $row['nom_formateur'] . "&heure=" . $heure . ":" . $minute . "'>O</a></center></small></font>
Amara est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/06/2006, 10h02   #11
Membre Expert
 
Inscription : avril 2006
Messages : 1 338
Détails du profil
Informations personnelles :
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations forums :
Inscription : avril 2006
Messages : 1 338
Points : 1 315
Points : 1 315
en faite tous depend....
soit tu veut récuperer ces infos pour les utiliser dans la suite d eton form.....la faut du javascript

soit dans le traitement et dans ce cas il faut utiliser ce que ta montrer JWhite avec un ti coup de tutos
__________________
Stay in Bed .. Save Energy
boo64 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/06/2006, 10h44   #12
Membre à l'essai
 
Inscription : mai 2006
Messages : 171
Détails du profil
Informations forums :
Inscription : mai 2006
Messages : 171
Points : 21
Points : 21
J'ai compris la méthode, le seul problème maintenant viens du $row['nom_formateur'] . Il me retourne une erreur autant de fois que j'ai de lignes dans ma boucle !
Sandara est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/06/2006, 10h49   #13
Expert Confirmé

 
Avatar de Amara
 
Inscription : juillet 2004
Messages : 2 684
Détails du profil
Informations personnelles :
Localisation : France, Sarthe (Pays de la Loire)

Informations forums :
Inscription : juillet 2004
Messages : 2 684
Points : 2 910
Points : 2 910
C'est bizarre, tu as vérifié ta requête dans phpmyadmin ?

Code :
$sql = "select num_formateur, nom_formateur, prenom_formateur, description_formateur from formateur order by num_formateur";
Tu es sûr(e) que le champ nom_formateur existe bien dans ta base ?

Au passage (je te rappelle car je l'avais déjà dit), c'est pas propre de faire $row[3], il est largement préférable de récupérer les informations en faisant $row['nom_du_champ'].
Amara est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/06/2006, 11h02   #14
Membre à l'essai
 
Inscription : mai 2006
Messages : 171
Détails du profil
Informations forums :
Inscription : mai 2006
Messages : 171
Points : 21
Points : 21
Justement voila la raison pour laquelle je n'ai pas mis $row['nom_du_champ']

Je viens de remplacer $row['nom_formateur'] par $row[2] et ca ne me génère plu d'erreurs ...

Et oui dans ma table les champs sont bien num,nom,prenom,description_formateur
Sandara est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/06/2006, 11h07   #15
Expert Confirmé

 
Avatar de Amara
 
Inscription : juillet 2004
Messages : 2 684
Détails du profil
Informations personnelles :
Localisation : France, Sarthe (Pays de la Loire)

Informations forums :
Inscription : juillet 2004
Messages : 2 684
Points : 2 910
Points : 2 910
Autant pour moi, ça doit être parce que tu utilises mysql_fetch_row et pas mysql_fetch_array (plus lisible). A ta place je mettrais mysql_fetch_array et les noms des champs comme je t'ai montré, le code est ainsi bien plus lisible.
Amara est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/06/2006, 11h46   #16
Membre à l'essai
 
Inscription : mai 2006
Messages : 171
Détails du profil
Informations forums :
Inscription : mai 2006
Messages : 171
Points : 21
Points : 21
Vous pouvez me mettre sur la piste pour pouvoir récupérer les infos (jean yves et 10h00 par exemple ) qui sont dans la barre d'adresse et les comparer a mes listes déroulantes de manière a ce que ds mes listes déroulantes ces infos passent en 'selected' ?

C'est encore quelque chose de tres complexe pour moi et je ne voit tejours pas comment fait ...

Merci :s
Sandara est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/06/2006, 11h54   #17
Expert Confirmé

 
Avatar de Amara
 
Inscription : juillet 2004
Messages : 2 684
Détails du profil
Informations personnelles :
Localisation : France, Sarthe (Pays de la Loire)

Informations forums :
Inscription : juillet 2004
Messages : 2 684
Points : 2 910
Points : 2 910
Dis-donc il fait aussi y mettre du sien un peu... On t'as dit comment mettre la sélection et comment récupérer les données, ça doit largement suffire non ?

Bon t'as de la chance je suis sur mon petit nuage et de très bonne humeur aujourd'hui (Boo sait pourquoi ) alors je te montre un exemple pour l'heure :

Tu remplaces ça :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
<SELECT NAME='heure' id='heure'>
<option value='8' selected>08</option>
<option value='9'>09</option>
<option value='10'>10</option>
<option value='11'>11</option>
<option value='12'>12</option>
<option value='13'>13</option>
<option value='14'>14</option>
<option value='15'>15</option>
<option value='16'>16</option>
<option value='17'>17</option>
<option value='18'>18</option>
</select>
Par quelque chose comme ça :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
echo "<SELECT NAME='heure' id='heure'>";
for (int $i = 8 ; $i <= 18 ; $i++)
{
echo "<OPTION VALUE='" . $i . "'";
if($i == $_GET['heure'])
   echo " SELECTED";
echo ">"; 
if($i < 10)
   echo "0";
echo $i . "</OPTION>\n";
}
echo "</SELECT>";
C'est pas testé donc probablement à corriger mais l'idée est là.

Par contre détail important, vu comment sont faites tes combos (une pour les heures et une pour les minutes), il faut que tu passes à ta page les heures d'un côté et les minutes de l'autre, si tu as compris ce qu'on t'as dit avant tu as juste à adapter (pour l'instant les heures et les minutes sont concaténées avec un ":".
Amara est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/06/2006, 12h40   #18
Membre Expert
 
Inscription : avril 2006
Messages : 1 338
Détails du profil
Informations personnelles :
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations forums :
Inscription : avril 2006
Messages : 1 338
Points : 1 315
Points : 1 315
Oui je c pourquoi grrr et moi pas d ebonne humeur alors je vais faire mon chiant!!!

JWhite ton code a des erreurs et deja qure notre amis adu mal donc tu remplace par ca pluto:
Code :
1
2
3
4
5
6
7
8
9
10
 
echo "<select name='heure' id='heure'>";
for (int $i = 8 ; $i <= 18 ; $i++)
{
echo '<option value="' . $i .'";
if($i == $_GET['heure'])
   echo " selected";
echo '>'.$i .'</option>';
}
echo "</select>";
__________________
Stay in Bed .. Save Energy
boo64 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/06/2006, 13h28   #19
Expert Confirmé

 
Avatar de Amara
 
Inscription : juillet 2004
Messages : 2 684
Détails du profil
Informations personnelles :
Localisation : France, Sarthe (Pays de la Loire)

Informations forums :
Inscription : juillet 2004
Messages : 2 684
Points : 2 910
Points : 2 910
C'est où l'erreur ?

Là en plus ça va afficher 8 - 9 au lieu de 08 - 09...
Amara est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/06/2006, 13h38   #20
Membre à l'essai
 
Inscription : mai 2006
Messages : 171
Détails du profil
Informations forums :
Inscription : mai 2006
Messages : 171
Points : 21
Points : 21
Il y avais une petit erreur de guillemet mais je l'ai arrangée, le code marche bien pour les heures.

Je suis entrain de l'adpter pour les formateurs vu que j'avais deja du code relatif aux formateurs a cet endroit la.

Je vous fait signe si j'ai un petit problème mais normalement ca devrait le faire !
Sandara est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 19h59.


 
 
 
 
Partenaires

Hébergement Web