Précédent   Forum des professionnels en informatique > PHP > Langage > Formulaires
Formulaires Forum d'entraide sur les formulaires avec PHP. Avant de poster -> FAQ formulaires, Cours de formulaires et Sources de formulaires
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 03/12/2007, 11h24   #1
Invité de passage
 
Inscription : mai 2007
Messages : 79
Détails du profil
Informations forums :
Inscription : mai 2007
Messages : 79
Points : 2
Points : 2
Par défaut Envoie données formulaire

Bonjour,

J’ai créé un formulaire avec une fonction php qui récupére les données saisies pas l’utilisateur pour les envoyer par mail

Voici le code de la fonction :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php
$TO = "toto@hotmail.com";
 
$h  = "From: " . $TO;
 
$message = "";
 
while (list($key, $val) = each($HTTP_POST_VARS)) {
  $message .= "$key : $val\n";
}
 
mail($TO, $subject, $message, $h);
 
Header("Location: http://172.18.4.41/ok.htm");
 
?>
Le problème c’est que dans mon formulaire je n’arrive pas à envoyer l’ensemble des données. Impossible d’envoyer :

Le champ avec 2 cases à cocher
Les champs de mes 2 listes déroulantes dynamiques

Pouvez vous m’aider, je débute tout juste dans le PHP

D’avance un grand merci pour votre aide
ju3979 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/12/2007, 12h28   #2
Candidat au titre de Membre du Club
 
Inscription : octobre 2007
Messages : 13
Détails du profil
Informations forums :
Inscription : octobre 2007
Messages : 13
Points : 13
Points : 13
Bonjour,
en premier les bases, pour récupéré un champ d'un formulaire utilise $_POST['le nom de ton champ'] avec 'nom de ton champ' qui correspond à l'attribut name de la balise html.

je te fais un petit exemple avec les champs suivant :

Code :
1
2
3
4
5
6
<input type="checkbox" name="case" value="oui">
<select name="liste">
  <option selected value="0">Sélectionner un pays</option>
  <option value="1">france</option>
</select>
<input type="text" name="dutexte" value="">
On a donc 1 case à cocher, une liste et un champ texte pour récupéré rien de plus simple

Code :
1
2
3
4
 
$valeur_case = $_POST['case']; // qui vaut oui si cocher
$valeur_liste =  $_POST['liste']; // qui vaut 1 si france est sélectionné
$valeur_dutexte = $_POST['dutexte']; // qui vaut le texte entré dans le champ
je n'en sait pas assez il aurait fallu que tu postes ton formulaire, il se peut par exemple que tu es besoin d'un tableau de case a cocher, si par exemple tu veux que l'on coche plusieurs cases sur un même thème...

En espérant avoir répondu à ta question.

Bon courage.
Capucine21 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/12/2007, 14h02   #3
Invité de passage
 
Inscription : mai 2007
Messages : 79
Détails du profil
Informations forums :
Inscription : mai 2007
Messages : 79
Points : 2
Points : 2
Tout d'abord merci pour ta réponse

Je te mets mon code formulaire:

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
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
 
<?php
include "connexion.php";
function Afficherresponsable($id)
{
$reponse = new xajaxResponse();//Création d'une instance de xajaxResponse pour traiter les réponses serveur
 
$responsable='';// Initialisation de la variable $responsable
//la selection des responsables celon le service choisis
$req = mysql_query("SELECT `code_resp`,`nom` FROM `responsable` where code_resp= ".$id." ORDER BY nom") or die(mysql_error()); 
 
$responsable .='<select id="responsable">'; // on commence la declaration de la liste des villes
$responsable .='<option value="00">Selectionnez responsable</option>';
 
  while($array = mysql_fetch_array($req))
{
 
               $responsable .='<option value="'.$array['nom'].'">'.$array['nom'].'</option>';
 
}
 
$responsable .='</select>';
 
$reponse = new xajaxResponse('ISO-8859-1');
$reponse->addAssign("affresponsable","innerHTML",$responsable); // affichage du contenu de $responsable (la liste des responsable) dans le div affresponsable
return $reponse->getXML();
}
 
require("xajax.inc.php");
$xajax = new xajax(); //On initialise l'objet xajax
$xajax->setCharEncoding('ISO-8859-1');
$xajax->decodeUTF8InputOn();
$xajax->registerFunction("Afficherresponsable");
$xajax->processRequests();//Fonction qui va se charger de faire les requetes APRES AVOIR DECLARER NOS FONCTIONS
?>
<html>
<head>
<title>Nouvelle Demande</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
		<?php $xajax->printJavascript(); /* Affiche le Javascript */?>
</head>
 
<body>
<?
$req = mysql_query("SELECT `code`,`nom` FROM `service` ORDER BY nom") or die(mysql_error()); 
?>
 
 
  <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-l">
  <?php $xajax->printJavascript(); /* Affiche le Javascript */?>
 
 
  <link href="test2.css" rel="stylesheet" type="text/css">
</head>
 
 
<body bgcolor="#ffffcc">
 
 
 
<form method="post" action="formmail.php">
 
 
 
  <p class="titre">CREATION NOUVELLE DEMANDE</p>
 
 
 
 
 
  <fieldset id="livraisons">
 
<div>       
 
   <label>Nom : </label>
    <input type="text" name="nom" size="30" /><br />
 
</div>
<div>    
   <label>Prenom : </label>
    <input type="text" name="prenom" size="30" /><br />
</div> 
<div> 
   <label>Service : </label>
<select id="serv" onChange="xajax_Afficherresponsable(document.getElementById('serv').value);">
<option value="00">Selectionnez service </option>
<?php
  while($array = mysql_fetch_array($req))
{
?>
                  <option value="<?php echo ($array['code']); ?>"><?php echo ($array['nom']."(".$array['code'].")"); ?></option>
                  <?php
}
?>
 
</div>
 
<div> 
 
    <label>Responsable : </label>
</select>
<div id="affresponsable"></div>
</body>
 
</div>
 
<div>  
    <label>Profil de référence : </label>
    <input type="text" name="profildereference" size="30" /><br />
</div> 
 
 
<HEAD>
<style type="text/css">
 
.ds_box {
	background-color: #FFF;
	border: 1px solid #000;
	position: absolute;
	z-index: 32767;
}
 
.ds_tbl {
	background-color: #FFF;
}
 
.ds_head {
	background-color: #333;
	color: #FFF;
	font-family: Arial, Helvetica, sans-serif;
	font-size: 13px;
	font-weight: bold;
	text-align: center;
	letter-spacing: 2px;
}
 
.ds_subhead {
	background-color: #CCC;
	color: #000;
	font-size: 12px;
	font-weight: bold;
	text-align: center;
	font-family: Arial, Helvetica, sans-serif;
	width: 32px;
}
 
.ds_cell {
	background-color: #EEE;
	color: #000;
	font-size: 13px;
	text-align: center;
	font-family: Arial, Helvetica, sans-serif;
	padding: 5px;
	cursor: pointer;
}
 
.ds_cell:hover {
	background-color: #F3F3F3;
} /* This hover code won't work for IE */
 
</style>
 
</HEAD>
 
<BODY>
<table class="ds_box" cellpadding="0" cellspacing="0" id="ds_conclass" style="display: none;">
<tr><td id="ds_calclass">
</td></tr>
</table>
 
<script type="text/javascript">
// <!-- <![CDATA[
 
// Project: Dynamic Date Selector (DtTvB) - 2006-03-16
// Script featured on JavaScript Kit- http://www.javascriptkit.com
// Code begin...
// Set the initial date.
var ds_i_date = new Date();
ds_c_month = ds_i_date.getMonth() + 1;
ds_c_year = ds_i_date.getFullYear();
 
// Get Element By Id
function ds_getel(id) {
	return document.getElementById(id);
}
 
// Get the left and the top of the element.
function ds_getleft(el) {
	var tmp = el.offsetLeft;
	el = el.offsetParent
	while(el) {
		tmp += el.offsetLeft;
		el = el.offsetParent;
	}
	return tmp;
}
function ds_gettop(el) {
	var tmp = el.offsetTop;
	el = el.offsetParent
	while(el) {
		tmp += el.offsetTop;
		el = el.offsetParent;
	}
	return tmp;
}
 
// Output Element
var ds_oe = ds_getel('ds_calclass');
// Container
var ds_ce = ds_getel('ds_conclass');
 
// Output Buffering
var ds_ob = ''; 
function ds_ob_clean() {
	ds_ob = '';
}
function ds_ob_flush() {
	ds_oe.innerHTML = ds_ob;
	ds_ob_clean();
}
function ds_echo(t) {
	ds_ob += t;
}
 
var ds_element; // Text Element...
 
var ds_monthnames = [
'Janvier', 'Février', 'Mars', 'Avril', 'Mai', 'Juin',
'Juillet', 'Aout', 'Septembre', 'Octobre', 'Novembre', 'Décembre'
]; // You can translate it for your language.
 
var ds_daynames = [
'Dim', 'Lun', 'Mar', 'Me', 'Jeu', 'Ven', 'Sam'
]; // You can translate it for your language.
 
// Calendar template
function ds_template_main_above(t) {
	return '<table cellpadding="3" cellspacing="1" class="ds_tbl">'
	     + '<tr>'
		 + '<td class="ds_head" style="cursor: pointer" onclick="ds_py();">&lt;&lt;</td>'
		 + '<td class="ds_head" style="cursor: pointer" onclick="ds_pm();">&lt;</td>'
		 + '<td class="ds_head" style="cursor: pointer" onclick="ds_hi();" colspan="3">[Fermer]</td>'
		 + '<td class="ds_head" style="cursor: pointer" onclick="ds_nm();">&gt;</td>'
		 + '<td class="ds_head" style="cursor: pointer" onclick="ds_ny();">&gt;&gt;</td>'
		 + '</tr>'
	     + '<tr>'
		 + '<td colspan="7" class="ds_head">' + t + '</td>'
		 + '</tr>'
		 + '<tr>';
}
 
function ds_template_day_row(t) {
	return '<td class="ds_subhead">' + t + '</td>';
	// Define width in CSS, XHTML 1.0 Strict doesn't have width property for it.
}
 
function ds_template_new_week() {
	return '</tr><tr>';
}
 
function ds_template_blank_cell(colspan) {
	return '<td colspan="' + colspan + '"></td>'
}
 
function ds_template_day(d, m, y) {
	return '<td class="ds_cell" onclick="ds_onclick(' + d + ',' + m + ',' + y + ')">' + d + '</td>';
	// Define width the day row.
}
 
function ds_template_main_below() {
	return '</tr>'
	     + '</table>';
}
 
// This one draws calendar...
function ds_draw_calendar(m, y) {
	// First clean the output buffer.
	ds_ob_clean();
	// Here we go, do the header
	ds_echo (ds_template_main_above(ds_monthnames[m - 1] + ' ' + y));
	for (i = 0; i < 7; i ++) {
		ds_echo (ds_template_day_row(ds_daynames[i]));
	}
	// Make a date object.
	var ds_dc_date = new Date();
	ds_dc_date.setMonth(m - 1);
	ds_dc_date.setFullYear(y);
	ds_dc_date.setDate(1);
	if (m == 1 || m == 3 || m == 5 || m == 7 || m == 8 || m == 10 || m == 12) {
		days = 31;
	} else if (m == 4 || m == 6 || m == 9 || m == 11) {
		days = 30;
	} else {
		days = (y % 4 == 0) ? 29 : 28;
	}
	var first_day = ds_dc_date.getDay();
	var first_loop = 1;
	// Start the first week
	ds_echo (ds_template_new_week());
	// If sunday is not the first day of the month, make a blank cell...
	if (first_day != 0) {
		ds_echo (ds_template_blank_cell(first_day));
	}
	var j = first_day;
	for (i = 0; i < days; i ++) {
		// Today is sunday, make a new week.
		// If this sunday is the first day of the month,
		// we've made a new row for you already.
		if (j == 0 && !first_loop) {
			// New week!!
			ds_echo (ds_template_new_week());
		}
		// Make a row of that day!
		ds_echo (ds_template_day(i + 1, m, y));
		// This is not first loop anymore...
		first_loop = 0;
		// What is the next day?
		j ++;
		j %= 7;
	}
	// Do the footer
	ds_echo (ds_template_main_below());
	// And let's display..
	ds_ob_flush();
	// Scroll it into view.
	ds_ce.scrollIntoView();
}
 
// A function to show the calendar.
// When user click on the date, it will set the content of t.
function ds_sh(t) {
	// Set the element to set...
	ds_element = t;
	// Make a new date, and set the current month and year.
	var ds_sh_date = new Date();
	ds_c_month = ds_sh_date.getMonth() + 1;
	ds_c_year = ds_sh_date.getFullYear();
	// Draw the calendar
	ds_draw_calendar(ds_c_month, ds_c_year);
	// To change the position properly, we must show it first.
	ds_ce.style.display = '';
	// Move the calendar container!
	the_left = ds_getleft(t);
	the_top = ds_gettop(t) + t.offsetHeight;
	ds_ce.style.left = the_left + 'px';
	ds_ce.style.top = the_top + 'px';
	// Scroll it into view.
	ds_ce.scrollIntoView();
}
 
// Hide the calendar.
function ds_hi() {
	ds_ce.style.display = 'none';
}
 
// Moves to the next month...
function ds_nm() {
	// Increase the current month.
	ds_c_month ++;
	// We have passed December, let's go to the next year.
	// Increase the current year, and set the current month to January.
	if (ds_c_month > 12) {
		ds_c_month = 1; 
		ds_c_year++;
	}
	// Redraw the calendar.
	ds_draw_calendar(ds_c_month, ds_c_year);
}
 
// Moves to the previous month...
function ds_pm() {
	ds_c_month = ds_c_month - 1; // Can't use dash-dash here, it will make the page invalid.
	// We have passed January, let's go back to the previous year.
	// Decrease the current year, and set the current month to December.
	if (ds_c_month < 1) {
		ds_c_month = 12; 
		ds_c_year = ds_c_year - 1; // Can't use dash-dash here, it will make the page invalid.
	}
	// Redraw the calendar.
	ds_draw_calendar(ds_c_month, ds_c_year);
}
 
// Moves to the next year...
function ds_ny() {
	// Increase the current year.
	ds_c_year++;
	// Redraw the calendar.
	ds_draw_calendar(ds_c_month, ds_c_year);
}
 
// Moves to the previous year...
function ds_py() {
	// Decrease the current year.
	ds_c_year = ds_c_year - 1; // Can't use dash-dash here, it will make the page invalid.
	// Redraw the calendar.
	ds_draw_calendar(ds_c_month, ds_c_year);
}
 
// Format the date to output.
function ds_format_date(d, m, y) {
	// 2 digits month.
	m2 = '00' + m;
	m2 = m2.substr(m2.length - 2);
	// 2 digits day.
	d2 = '00' + d;
	d2 = d2.substr(d2.length - 2);
	// YYYY-MM-DD
//	return y + '-' + m2 + '-' + d2;
	return d2 + '-' + m2 + '-' + y;
}
 
// When the user clicks the day.
function ds_onclick(d, m, y) {
	// Hide the calendar.
	ds_hi();
	// Set the value of it, if we can.
	if (typeof(ds_element.value) != 'undefined') {
		ds_element.value = ds_format_date(d, m, y);
	// Maybe we want to set the HTML in it.
	} else if (typeof(ds_element.innerHTML) != 'undefined') {
		ds_element.innerHTML = ds_format_date(d, m, y);
	// I don't know how should we display it, just alert it to user.
	} else {
		alert (ds_format_date(d, m, y));
	}
}
 
// And here is the end.
 
// ]]> -->
</script>
 
 
<form action="" method="post">
 
<div> 
<label>Date d'entrée : </label>
<input onclick="ds_sh(this);" name="date" size="30" readonly="readonly" style="cursor: text" /><br />
 
</div> 
 
 
 
  <p id="messagerie"><label>Accès messagerie ? : </label>
    <input name="accesmessagerie[]" value="oui" type="checkbox">Oui<br>
    <input name="accesmessagerie[]" value="non" type="checkbox">Non<br>
     </p>
 
 
 
 
 <p><label>Remarque :</label><br/>
    <textarea name="remarque" rows="5" cols="40"></textarea>
   </p>
 
 
  <p id="buttons">
  <input value="Envoyer" type="submit">
  <input value="Recommencer" type="reset">
  </p>
 
 
  </fieldset>
 
 
 
</form>
 
</body>
</html>
peux tu m'aider d'avantage

pour l'instant il envoit par mail les champs: nom; prénom; profil de référence,date d'entré, remarque
il n'envoit la liste déroulante service et la liste déroulante responsable ni la case à cocher accès messagerie

Merci pour ton aide
ju3979 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/12/2007, 14h28   #4
Candidat au titre de Membre du Club
 
Inscription : octobre 2007
Messages : 13
Détails du profil
Informations forums :
Inscription : octobre 2007
Messages : 13
Points : 13
Points : 13
Bon comme j'ai pas trop le temps je vais aller à l'essentiel c'est à dire récupéré les champs (je suppose que tes listes dynamiques via ajax fonctionne correctement etc...).

1- remplace tes cases à cocher par un groupe de boutons radio (on ne va pas répondre oui et non, mais c'est soit l'un soit l'autre), en plus sa va te faciliter le travail pour récupérer la valeur.

Code :
1
2
3
4
 
<input name="accesmessagerie" value="oui" type="radio">Oui<br>
<input name="accesmessagerie" value="non" type="radio">Non<br>
// tu recupère sa via $_POST['accesmessagerie'] qui vaudra oui ou non
2- passons à tes deux liste, elles ont bien un id mais pas d'attribut name.
Code :
1
2
3
4
5
6
7
8
9
 
$responsable .='<select id="responsable">';
//à remplacer par 
$responsable .='<select id="responsable"  name="responsable">';
 
//et la ligne
<select id="serv" onChange="xajax_Afficherresponsable(document.getElementById('serv').value);">
//à remplacer par 
<select id="serv" name="serv" onChange="xajax_Afficherresponsable(document.getElementById('serv').value);">
Tu dois maintenant pouvoir récupéré la valeur des listes en utilisant respectivement $_POST['serv'] et $_POST['responsable']

Bonne journée.
Capucine21 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/12/2007, 14h53   #5
Invité de passage
 
Inscription : mai 2007
Messages : 79
Détails du profil
Informations forums :
Inscription : mai 2007
Messages : 79
Points : 2
Points : 2
J'ai fais ce que tu m'as indiqué
Dons maintenant il m'envoie bien le champ responsable mais pas le champ service
Et pour le champ accesmessageir il me met la valeur Array

Encor merci pour le coup de main
ju3979 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/12/2007, 16h09   #6
Candidat au titre de Membre du Club
 
Inscription : octobre 2007
Messages : 13
Détails du profil
Informations forums :
Inscription : octobre 2007
Messages : 13
Points : 13
Points : 13
OK alors pour le champ accesmessagerie as-tu bien retiré le [] car ce n'est plus un tableau du coup. (name="accesmessagerie")

Si sa fonctionne pour la liste responsable en théorie sa doit aussi fonctionner pour la liste service, appelles tu bien la liste en utilisant le nom c'est à dire serv dans ton cas et non pas service

Si le problème persiste c'est qu'il doit y'avoir un problème ailleurs peut-être à cause de ta liste le </select> qui ferme ta liste contient d'autres balises qui en général n'ont rien à faire là (</div><div><label>Responsable :</label></select>) peut-être que cette imbrication pose problème essaie voir comme ceci
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 
<select id="serv" onChange="xajax_Afficherresponsable(document.getElementById('serv').value);">
<option value="00">Selectionnez service </option>
<?php
  while($array = mysql_fetch_array($req))
{
?>
                  <option value="<?php echo ($array['code']); ?>"><?php echo ($array['nom']."(".$array['code'].")"); ?></option>
                  <?php
}
?>
</select>
</div>
<div> 
<label>Responsable : </label>
Capucine21 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/12/2007, 16h37   #7
Invité de passage
 
Inscription : mai 2007
Messages : 79
Détails du profil
Informations forums :
Inscription : mai 2007
Messages : 79
Points : 2
Points : 2
Désolé ça ne marche toujours pas le pb reste le même
je te remets mon code formulaire:

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
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
 
<?php
include "connexion.php";
function Afficherresponsable($id)
{
$reponse = new xajaxResponse();//Création d'une instance de xajaxResponse pour traiter les réponses serveur
 
$responsable='';// Initialisation de la variable $responsable
//la selection des responsables celon le service choisis
$req = mysql_query("SELECT `code_resp`,`nom` FROM `responsable` where code_resp= ".$id." ORDER BY nom") or die(mysql_error()); 
 
$responsable .='<select id="responsable" name="responsable">';   // on commence la declaration de la liste des villes
 
$responsable .='<option value="00">Selectionnez responsable</option>';
 
  while($array = mysql_fetch_array($req))
{
 
               $responsable .='<option value="'.$array['nom'].'">'.$array['nom'].'</option>';
 
}
 
$responsable .='</select>';
 
$reponse = new xajaxResponse('ISO-8859-1');
$reponse->addAssign("affresponsable","innerHTML",$responsable); // affichage du contenu de $responsable (la liste des responsable) dans le div affresponsable
return $reponse->getXML();
}
 
require("xajax.inc.php");
$xajax = new xajax(); //On initialise l'objet xajax
$xajax->setCharEncoding('ISO-8859-1');
$xajax->decodeUTF8InputOn();
$xajax->registerFunction("Afficherresponsable");
$xajax->processRequests();//Fonction qui va se charger de faire les requetes APRES AVOIR DECLARER NOS FONCTIONS
?>
<html>
<head>
<title>Nouvelle Demande</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
		<?php $xajax->printJavascript(); /* Affiche le Javascript */?>
</head>
 
<body>
<?
$req = mysql_query("SELECT `code`,`nom` FROM `service` ORDER BY nom") or die(mysql_error()); 
?>
 
 
  <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-l">
  <?php $xajax->printJavascript(); /* Affiche le Javascript */?>
 
 
  <link href="test2.css" rel="stylesheet" type="text/css">
</head>
 
 
<body bgcolor="#ffffcc">
 
 
 
<form method="post" action="formmail.php">
 
 
 
  <p class="titre">CREATION NOUVELLE DEMANDE</p>
 
 
 
 
 
  <fieldset id="livraisons">
 
<div>       
 
   <label>Nom : </label>
    <input type="text" name="nom" size="30" /><br />
 
</div>
<div>    
   <label>Prenom : </label>
    <input type="text" name="prenom" size="30" /><br />
</div> 
<div> 
   <label>Service : </label>
<select id="serv" name="serv" onChange="xajax_Afficherresponsable(document.getElementById('serv').value);">
<option value="00">Selectionnez service </option>
<?php
  while($array = mysql_fetch_array($req))
{
?>
                  <option value="<?php echo ($array['code']); ?>"><?php echo ($array['nom']."(".$array['code'].")"); ?></option>
                  <?php
}
?>
</select>
</div>
<div> 
 
<label>Responsable : </label>
 
<div id="affresponsable" name="affresponsable"></div>
</body>
 
</div>
 
<div>  
    <label>Profil de référence : </label>
    <input type="text" name="profildereference" size="30" /><br />
</div> 
 
 
<HEAD>
<style type="text/css">
 
.ds_box {
	background-color: #FFF;
	border: 1px solid #000;
	position: absolute;
	z-index: 32767;
}
 
.ds_tbl {
	background-color: #FFF;
}
 
.ds_head {
	background-color: #333;
	color: #FFF;
	font-family: Arial, Helvetica, sans-serif;
	font-size: 13px;
	font-weight: bold;
	text-align: center;
	letter-spacing: 2px;
}
 
.ds_subhead {
	background-color: #CCC;
	color: #000;
	font-size: 12px;
	font-weight: bold;
	text-align: center;
	font-family: Arial, Helvetica, sans-serif;
	width: 32px;
}
 
.ds_cell {
	background-color: #EEE;
	color: #000;
	font-size: 13px;
	text-align: center;
	font-family: Arial, Helvetica, sans-serif;
	padding: 5px;
	cursor: pointer;
}
 
.ds_cell:hover {
	background-color: #F3F3F3;
} /* This hover code won't work for IE */
 
</style>
 
</HEAD>
 
<BODY>
<table class="ds_box" cellpadding="0" cellspacing="0" id="ds_conclass" style="display: none;">
<tr><td id="ds_calclass">
</td></tr>
</table>
 
<script type="text/javascript">
// <!-- <![CDATA[
 
// Project: Dynamic Date Selector (DtTvB) - 2006-03-16
// Script featured on JavaScript Kit- http://www.javascriptkit.com
// Code begin...
// Set the initial date.
var ds_i_date = new Date();
ds_c_month = ds_i_date.getMonth() + 1;
ds_c_year = ds_i_date.getFullYear();
 
// Get Element By Id
function ds_getel(id) {
	return document.getElementById(id);
}
 
// Get the left and the top of the element.
function ds_getleft(el) {
	var tmp = el.offsetLeft;
	el = el.offsetParent
	while(el) {
		tmp += el.offsetLeft;
		el = el.offsetParent;
	}
	return tmp;
}
function ds_gettop(el) {
	var tmp = el.offsetTop;
	el = el.offsetParent
	while(el) {
		tmp += el.offsetTop;
		el = el.offsetParent;
	}
	return tmp;
}
 
// Output Element
var ds_oe = ds_getel('ds_calclass');
// Container
var ds_ce = ds_getel('ds_conclass');
 
// Output Buffering
var ds_ob = ''; 
function ds_ob_clean() {
	ds_ob = '';
}
function ds_ob_flush() {
	ds_oe.innerHTML = ds_ob;
	ds_ob_clean();
}
function ds_echo(t) {
	ds_ob += t;
}
 
var ds_element; // Text Element...
 
var ds_monthnames = [
'Janvier', 'Février', 'Mars', 'Avril', 'Mai', 'Juin',
'Juillet', 'Aout', 'Septembre', 'Octobre', 'Novembre', 'Décembre'
]; // You can translate it for your language.
 
var ds_daynames = [
'Dim', 'Lun', 'Mar', 'Me', 'Jeu', 'Ven', 'Sam'
]; // You can translate it for your language.
 
// Calendar template
function ds_template_main_above(t) {
	return '<table cellpadding="3" cellspacing="1" class="ds_tbl">'
	     + '<tr>'
		 + '<td class="ds_head" style="cursor: pointer" onclick="ds_py();">&lt;&lt;</td>'
		 + '<td class="ds_head" style="cursor: pointer" onclick="ds_pm();">&lt;</td>'
		 + '<td class="ds_head" style="cursor: pointer" onclick="ds_hi();" colspan="3">[Fermer]</td>'
		 + '<td class="ds_head" style="cursor: pointer" onclick="ds_nm();">&gt;</td>'
		 + '<td class="ds_head" style="cursor: pointer" onclick="ds_ny();">&gt;&gt;</td>'
		 + '</tr>'
	     + '<tr>'
		 + '<td colspan="7" class="ds_head">' + t + '</td>'
		 + '</tr>'
		 + '<tr>';
}
 
function ds_template_day_row(t) {
	return '<td class="ds_subhead">' + t + '</td>';
	// Define width in CSS, XHTML 1.0 Strict doesn't have width property for it.
}
 
function ds_template_new_week() {
	return '</tr><tr>';
}
 
function ds_template_blank_cell(colspan) {
	return '<td colspan="' + colspan + '"></td>'
}
 
function ds_template_day(d, m, y) {
	return '<td class="ds_cell" onclick="ds_onclick(' + d + ',' + m + ',' + y + ')">' + d + '</td>';
	// Define width the day row.
}
 
function ds_template_main_below() {
	return '</tr>'
	     + '</table>';
}
 
// This one draws calendar...
function ds_draw_calendar(m, y) {
	// First clean the output buffer.
	ds_ob_clean();
	// Here we go, do the header
	ds_echo (ds_template_main_above(ds_monthnames[m - 1] + ' ' + y));
	for (i = 0; i < 7; i ++) {
		ds_echo (ds_template_day_row(ds_daynames[i]));
	}
	// Make a date object.
	var ds_dc_date = new Date();
	ds_dc_date.setMonth(m - 1);
	ds_dc_date.setFullYear(y);
	ds_dc_date.setDate(1);
	if (m == 1 || m == 3 || m == 5 || m == 7 || m == 8 || m == 10 || m == 12) {
		days = 31;
	} else if (m == 4 || m == 6 || m == 9 || m == 11) {
		days = 30;
	} else {
		days = (y % 4 == 0) ? 29 : 28;
	}
	var first_day = ds_dc_date.getDay();
	var first_loop = 1;
	// Start the first week
	ds_echo (ds_template_new_week());
	// If sunday is not the first day of the month, make a blank cell...
	if (first_day != 0) {
		ds_echo (ds_template_blank_cell(first_day));
	}
	var j = first_day;
	for (i = 0; i < days; i ++) {
		// Today is sunday, make a new week.
		// If this sunday is the first day of the month,
		// we've made a new row for you already.
		if (j == 0 && !first_loop) {
			// New week!!
			ds_echo (ds_template_new_week());
		}
		// Make a row of that day!
		ds_echo (ds_template_day(i + 1, m, y));
		// This is not first loop anymore...
		first_loop = 0;
		// What is the next day?
		j ++;
		j %= 7;
	}
	// Do the footer
	ds_echo (ds_template_main_below());
	// And let's display..
	ds_ob_flush();
	// Scroll it into view.
	ds_ce.scrollIntoView();
}
 
// A function to show the calendar.
// When user click on the date, it will set the content of t.
function ds_sh(t) {
	// Set the element to set...
	ds_element = t;
	// Make a new date, and set the current month and year.
	var ds_sh_date = new Date();
	ds_c_month = ds_sh_date.getMonth() + 1;
	ds_c_year = ds_sh_date.getFullYear();
	// Draw the calendar
	ds_draw_calendar(ds_c_month, ds_c_year);
	// To change the position properly, we must show it first.
	ds_ce.style.display = '';
	// Move the calendar container!
	the_left = ds_getleft(t);
	the_top = ds_gettop(t) + t.offsetHeight;
	ds_ce.style.left = the_left + 'px';
	ds_ce.style.top = the_top + 'px';
	// Scroll it into view.
	ds_ce.scrollIntoView();
}
 
// Hide the calendar.
function ds_hi() {
	ds_ce.style.display = 'none';
}
 
// Moves to the next month...
function ds_nm() {
	// Increase the current month.
	ds_c_month ++;
	// We have passed December, let's go to the next year.
	// Increase the current year, and set the current month to January.
	if (ds_c_month > 12) {
		ds_c_month = 1; 
		ds_c_year++;
	}
	// Redraw the calendar.
	ds_draw_calendar(ds_c_month, ds_c_year);
}
 
// Moves to the previous month...
function ds_pm() {
	ds_c_month = ds_c_month - 1; // Can't use dash-dash here, it will make the page invalid.
	// We have passed January, let's go back to the previous year.
	// Decrease the current year, and set the current month to December.
	if (ds_c_month < 1) {
		ds_c_month = 12; 
		ds_c_year = ds_c_year - 1; // Can't use dash-dash here, it will make the page invalid.
	}
	// Redraw the calendar.
	ds_draw_calendar(ds_c_month, ds_c_year);
}
 
// Moves to the next year...
function ds_ny() {
	// Increase the current year.
	ds_c_year++;
	// Redraw the calendar.
	ds_draw_calendar(ds_c_month, ds_c_year);
}
 
// Moves to the previous year...
function ds_py() {
	// Decrease the current year.
	ds_c_year = ds_c_year - 1; // Can't use dash-dash here, it will make the page invalid.
	// Redraw the calendar.
	ds_draw_calendar(ds_c_month, ds_c_year);
}
 
// Format the date to output.
function ds_format_date(d, m, y) {
	// 2 digits month.
	m2 = '00' + m;
	m2 = m2.substr(m2.length - 2);
	// 2 digits day.
	d2 = '00' + d;
	d2 = d2.substr(d2.length - 2);
	// YYYY-MM-DD
//	return y + '-' + m2 + '-' + d2;
	return d2 + '-' + m2 + '-' + y;
}
 
// When the user clicks the day.
function ds_onclick(d, m, y) {
	// Hide the calendar.
	ds_hi();
	// Set the value of it, if we can.
	if (typeof(ds_element.value) != 'undefined') {
		ds_element.value = ds_format_date(d, m, y);
	// Maybe we want to set the HTML in it.
	} else if (typeof(ds_element.innerHTML) != 'undefined') {
		ds_element.innerHTML = ds_format_date(d, m, y);
	// I don't know how should we display it, just alert it to user.
	} else {
		alert (ds_format_date(d, m, y));
	}
}
 
// And here is the end.
 
// ]]> -->
</script>
 
 
<form action="" method="post">
 
<div> 
<label>Date d'entrée : </label>
<input onclick="ds_sh(this);" name="date" size="30" readonly="readonly" style="cursor: text" /><br />
 
</div> 
 
 
 
  <p id="messagerie"><label>Accès messagerie ? : </label>
    <input name="accesmessagerie" value="oui" type="radio">Oui<br>
    <input name="accesmessagerie" value="non" type="radio">Non<br>
     </p>
 
 
 
 
 <p><label>Remarque :</label><br/>
    <textarea name="remarque" rows="5" cols="40"></textarea>
   </p>
 
 
  <p id="buttons">
  <input value="Envoyer" type="submit">
  <input value="Recommencer" type="reset">
  </p>
 
 
  </fieldset>
 
 
 
</form>
 
</body>
</html>
Et mon code php pour l'envoie

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
 
 
<?php
 
 
$TO = "toto@toto.com";
 
$h  = "From: " . $TO;
 
$message = "";
$subject = $_POST['date'];
 
while (list($key, $val) = each($_POST)) {
  $message .= "$key : $val\n";
}
 
mail($TO, $subject, $message, $h);
 
Header("Location: http://172.18.4.41/ok.htm");
 
?>
encore merci pour tout
ju3979 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/12/2007, 19h33   #8
Candidat au titre de Membre du Club
 
Inscription : octobre 2007
Messages : 13
Détails du profil
Informations forums :
Inscription : octobre 2007
Messages : 13
Points : 13
Points : 13
De retour chez moi je jette enfin un vrai coup d'oeil à ton code et la c'est le drame

Tu as du sérieusement abusé du copier coller car dans ta page formulaire il ya :
- 3 balises <body> imbriquées
- 2 fois le charset
- plusieurs fois le head
-2 formulaires imbriqués dont un qui pointe vers rien

Donc pas étonnant que tu es des bugs quand tu envoie ton formulaire !
C'est super dur de s'y retrouver en plus pour debugguer.

1 - un peu de ménage pour avoir une page à peu près correcte
2- il faut virer de ta page le calendar le code sera plus facile à maintenir
3- virer le css du calendar dans une feuille de style

au final on aura donc 3 pages :
formulaire.php
calendar.js
calendar.css

le calendar nécessite une initialisation je lui est donc ajouter une function init que j'appelle au chargement du body.

Voici ta page formulaire.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
<?php
include ("connexion.php");
require("xajax.inc.php");
$xajax = new xajax(); //On initialise l'objet xajax
$xajax->setCharEncoding('ISO-8859-1');
$xajax->decodeUTF8InputOn();
$xajax->registerFunction("Afficherresponsable");
$xajax->processRequests();//Fonction qui va se charger de faire les requetes APRES AVOIR DECLARER NOS FONCTIONS
 
function Afficherresponsable($id)
{
$reponse = new xajaxResponse();//Création d'une instance de xajaxResponse pour traiter les réponses serveur
$responsable='';// Initialisation de la variable $responsable
//la selection des responsables celon le service choisis
$req = mysql_query("SELECT `code_resp`,`nom` FROM `responsable` where code_resp= ".$id." ORDER BY nom") or die(mysql_error()); 
$responsable .='<select id="responsable" name="responsable">';   // on commence la declaration de la liste des villes
$responsable .='<option value="00">Selectionnez responsable</option>';
while($array = mysql_fetch_array($req))
{
$responsable .='<option value="'.$array['nom'].'">'.$array['nom'].'</option>';
}
$responsable .='</select>';
$reponse = new xajaxResponse('ISO-8859-1');
$reponse->addAssign("affresponsable","innerHTML",$responsable); // affichage du contenu de $responsable (la liste des responsable) dans le div affresponsable
return $reponse->getXML();
}
?>
<html>
<head>
<title>Nouvelle Demande</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<?php
$xajax->printJavascript(); /* Affiche le Javascript */
?>
<script type="text/javascript" src="calendar.js"></script>
<link href="test2.css" rel="stylesheet" type="text/css">
<link href="calendar.css" rel="stylesheet" type="text/css">
</head>
<body bgcolor="#ffffcc" onload="initCalendar()">
<form method="POST" action="formmail.php">
<p class="titre">CREATION NOUVELLE DEMANDE</p>
<fieldset id="livraisons">
<label>Nom : </label>
<input type="text" name="nom" size="30" /><br />
<label>Prenom : </label>
<input type="text" name="prenom" size="30" /><br />
<label>Service : </label>
<select id="serv" name="serv" onChange="xajax_Afficherresponsable(document.getElementById('serv').value);">
<option value="00">Selectionnez service </option>
<?php
$req = mysql_query("SELECT `code`,`nom` FROM `service` ORDER BY nom") or die(mysql_error());
while($array = mysql_fetch_array($req))
{
?>
<option value="<?php echo $array['code']; ?>"><?php echo $array['nom']."(".$array['code'].")"; ?></option>
<?php
}
?>
</select>
<label>Responsable : </label>
<div id="affresponsable" name="affresponsable"></div>
<label>Profil de référence : </label>
<input type="text" name="profildereference" size="30" /><br />
<label>Date entrée : </label>
<input onclick="ds_sh(this);" name="date" size="30" readonly="readonly" style="cursor:text"><br />
<table class="ds_box" cellpadding="0" cellspacing="0" id="ds_conclass" style="display: none;">
<tr><td id="ds_calclass">
</td></tr>
</table>
<p id="messagerie"><label>Accès messagerie ? : </label>
<br />
<input name="accesmessagerie" value="oui" type="radio">Oui<br />
<input name="accesmessagerie" value="non" type="radio">Non<br />
</p>
<p><label>Remarque :</label><br />
<textarea name="remarque" rows="5" cols="40"></textarea>
</p>
<p id="buttons">
<input value="Envoyer" type="submit">
<input value="Recommencer" type="reset">
</p>
</fieldset>
</form>
</body>
</html>
la page calendar.js qui contient le code du calendrier
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
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
// Project: Dynamic Date Selector (DtTvB) - 2006-03-16
// Script featured on JavaScript Kit- http://www.javascriptkit.com
// Code begin...
// Set the initial date.
var ds_i_date = new Date();
ds_c_month = ds_i_date.getMonth() + 1;
ds_c_year = ds_i_date.getFullYear();
var ds_oe;
var ds_ce;
var ds_ob = '';
// Get Element By Id
function ds_getel(id) {
return document.getElementById(id);
}
function initCalendar(){
ds_oe = ds_getel('ds_calclass');
ds_ce = ds_getel('ds_conclass');
}
// Get the left and the top of the element.
function ds_getleft(el) {
	var tmp = el.offsetLeft;
	el = el.offsetParent
	while(el) {
		tmp += el.offsetLeft;
		el = el.offsetParent;
	}
	return tmp;
}
function ds_gettop(el) {
	var tmp = el.offsetTop;
	el = el.offsetParent
	while(el) {
		tmp += el.offsetTop;
		el = el.offsetParent;
	}
	return tmp;
}
function ds_ob_clean() {
	ds_ob = '';
}
function ds_ob_flush() {
	ds_oe.innerHTML = ds_ob;
	ds_ob_clean();
}
function ds_echo(t) {
	ds_ob += t;
}
var ds_element; // Text Element...
var ds_monthnames = [
'Janvier', 'Février', 'Mars', 'Avril', 'Mai', 'Juin',
'Juillet', 'Aout', 'Septembre', 'Octobre', 'Novembre', 'Décembre'
]; // You can translate it for your language.
var ds_daynames = [
'Dim', 'Lun', 'Mar', 'Me', 'Jeu', 'Ven', 'Sam'
]; // You can translate it for your language.
// Calendar template
function ds_template_main_above(t) {
	return '<table cellpadding="3" cellspacing="1" class="ds_tbl">'
	     + '<tr>'
		 + '<td class="ds_head" style="cursor: pointer" onclick="ds_py();"><<</td>'
		 + '<td class="ds_head" style="cursor: pointer" onclick="ds_pm();"><</td>'
		 + '<td class="ds_head" style="cursor: pointer" onclick="ds_hi();" colspan="3">[Fermer]</td>'
		 + '<td class="ds_head" style="cursor: pointer" onclick="ds_nm();">></td>'
		 + '<td class="ds_head" style="cursor: pointer" onclick="ds_ny();">>></td>'
		 + '</tr>'
	     + '<tr>'
		 + '<td colspan="7" class="ds_head">' + t + '</td>'
		 + '</tr>'
		 + '<tr>';
}
function ds_template_day_row(t) {
	return '<td class="ds_subhead">' + t + '</td>';
	// Define width in CSS, XHTML 1.0 Strict doesn't have width property for it.
}
function ds_template_new_week() {
return '</tr><tr>';
}
function ds_template_blank_cell(colspan) {
	return '<td colspan="' + colspan + '"></td>'
}
function ds_template_day(d, m, y) {
	return '<td class="ds_cell" onclick="ds_onclick(' + d + ',' + m + ',' + y + ')">' + d + '</td>';
	// Define width the day row.
}
function ds_template_main_below() {
	return '</tr>'
	     + '</table>';
}
// This one draws calendar...
function ds_draw_calendar(m, y) {
	// First clean the output buffer.
	ds_ob_clean();
	// Here we go, do the header
	ds_echo (ds_template_main_above(ds_monthnames[m - 1] + ' ' + y));
	for (i = 0; i < 7; i ++) {
		ds_echo (ds_template_day_row(ds_daynames[i]));
	}
	// Make a date object.
	var ds_dc_date = new Date();
	ds_dc_date.setMonth(m - 1);
	ds_dc_date.setFullYear(y);
	ds_dc_date.setDate(1);
	if (m == 1 || m == 3 || m == 5 || m == 7 || m == 8 || m == 10 || m == 12) {
		days = 31;
	} else if (m == 4 || m == 6 || m == 9 || m == 11) {
		days = 30;
	} else {
		days = (y % 4 == 0) ? 29 : 28;
	}
	var first_day = ds_dc_date.getDay();
	var first_loop = 1;
	// Start the first week
	ds_echo (ds_template_new_week());
	// If sunday is not the first day of the month, make a blank cell...
	if (first_day != 0) {
		ds_echo (ds_template_blank_cell(first_day));
	}
	var j = first_day;
	for (i = 0; i < days; i ++) {
		// Today is sunday, make a new week.
		// If this sunday is the first day of the month,
		// we've made a new row for you already.
		if (j == 0 && !first_loop) {
			// New week!!
			ds_echo (ds_template_new_week());
		}
		// Make a row of that day!
		ds_echo (ds_template_day(i + 1, m, y));
		// This is not first loop anymore...
		first_loop = 0;
		// What is the next day?
		j ++;
		j %= 7;
	}
	// Do the footer
	ds_echo (ds_template_main_below());
	// And let's display..
	ds_ob_flush();
	// Scroll it into view.
	ds_ce.scrollIntoView();
}
// A function to show the calendar.
// When user click on the date, it will set the content of t.
function ds_sh(t) {
	// Set the element to set...
	ds_element = t;
	// Make a new date, and set the current month and year.
	var ds_sh_date = new Date();
	ds_c_month = ds_sh_date.getMonth() + 1;
	ds_c_year = ds_sh_date.getFullYear();
	// Draw the calendar
	ds_draw_calendar(ds_c_month, ds_c_year);
	// To change the position properly, we must show it first.
	ds_ce.style.display = '';
	// Move the calendar container!
	the_left = ds_getleft(t);
	the_top = ds_gettop(t) + t.offsetHeight;
	ds_ce.style.left = the_left + 'px';
	ds_ce.style.top = the_top + 'px';
	// Scroll it into view.
	ds_ce.scrollIntoView();
}
// Hide the calendar.
function ds_hi() {
	ds_ce.style.display = 'none';
}
// Moves to the next month...
function ds_nm() {
	// Increase the current month.
	ds_c_month ++;
	// We have passed December, let's go to the next year.
	// Increase the current year, and set the current month to January.
	if (ds_c_month > 12) {
		ds_c_month = 1; 
		ds_c_year++;
	}
	// Redraw the calendar.
	ds_draw_calendar(ds_c_month, ds_c_year);
}
// Moves to the previous month...
function ds_pm() {
	ds_c_month = ds_c_month - 1; // Can't use dash-dash here, it will make the page invalid.
	// We have passed January, let's go back to the previous year.
	// Decrease the current year, and set the current month to December.
	if (ds_c_month < 1) {
		ds_c_month = 12; 
		ds_c_year = ds_c_year - 1; // Can't use dash-dash here, it will make the page invalid.
	}
	// Redraw the calendar.
	ds_draw_calendar(ds_c_month, ds_c_year);
}
// Moves to the next year...
function ds_ny() {
	// Increase the current year.
	ds_c_year++;
	// Redraw the calendar.
	ds_draw_calendar(ds_c_month, ds_c_year);
}
// Moves to the previous year...
function ds_py() {
	// Decrease the current year.
	ds_c_year = ds_c_year - 1; // Can't use dash-dash here, it will make the page invalid.
	// Redraw the calendar.
	ds_draw_calendar(ds_c_month, ds_c_year);
}
// Format the date to output.
function ds_format_date(d, m, y) {
	// 2 digits month.
	m2 = '00' + m;
	m2 = m2.substr(m2.length - 2);
	// 2 digits day.
	d2 = '00' + d;
	d2 = d2.substr(d2.length - 2);
	// YYYY-MM-DD
	return d2 + '-' + m2 + '-' + y;
}
// When the user clicks the day.
function ds_onclick(d, m, y) {
	// Hide the calendar.
	ds_hi();
	// Set the value of it, if we can.
	if (typeof(ds_element.value) != 'undefined') {
		ds_element.value = ds_format_date(d, m, y);
	// Maybe we want to set the HTML in it.
	} else if (typeof(ds_element.innerHTML) != 'undefined') {
		ds_element.innerHTML = ds_format_date(d, m, y);
	// I don't know how should we display it, just alert it to user.
	} else {
		alert (ds_format_date(d, m, y));
	}
}
La feuille de style calendar.css
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
.ds_box {
	background-color: #FFF;
	border: 1px solid #000;
	position: absolute;
	z-index: 32767;
}
.ds_tbl {
	background-color: #FFF;
}
.ds_head {
	background-color: #333;
	color: #FFF;
	font-family: Arial, Helvetica, sans-serif;
	font-size: 13px;
	font-weight: bold;
	text-align: center;
	letter-spacing: 2px;
}
.ds_subhead {
	background-color: #CCC;
	color: #000;
	font-size: 12px;
	font-weight: bold;
	text-align: center;
	font-family: Arial, Helvetica, sans-serif;
	width: 32px;
}
.ds_cell {
	background-color: #EEE;
	color: #000;
	font-size: 13px;
	text-align: center;
	font-family: Arial, Helvetica, sans-serif;
	padding: 5px;
	cursor: pointer;
}
.ds_cell:hover {
	background-color: #F3F3F3;
}
Bon c'est pas dit que sa marche mais au moins si sa marche toujour pas se sera plus facile de s'y retrouver et donc de corriger le problème.
Fichiers attachés
Type de fichier : php formulaire.php (3,3 Ko, 1 affichages)
Type de fichier : js calendar.js (6,8 Ko, 1 affichages)
Type de fichier : css calendar.css (738 octets, 1 affichages)
Capucine21 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/12/2007, 11h26   #9
Invité de passage
 
Inscription : mai 2007
Messages : 79
Détails du profil
Informations forums :
Inscription : mai 2007
Messages : 79
Points : 2
Points : 2
Bonjour

Oui il y a du mieux
Maintenant il m'envoit l'ensemble des informations mais pour le champ service il m'envoit le numéro attribué au service mais pas le nom du service

J'ai aussi un autre problème d'affichage. J'aimerais que quand l'utilisateur arrive sur la page il voir dircetement les 2 listes déroulantes
Car la il voit uniquement la liste déroulante service et une fois qu'il selectionne un service la liste déroulante responsable apparait

Merci merci pour toute l'aide
ju3979 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/12/2007, 13h32   #10
Candidat au titre de Membre du Club
 
Inscription : octobre 2007
Messages : 13
Détails du profil
Informations forums :
Inscription : octobre 2007
Messages : 13
Points : 13
Points : 13
Citation:
pour le champ service il m'envoit le numéro attribué au service mais pas le nom du service
Tu récupère la valeur value qui vaut : $array['code']; donc c'est normal, cette valeur te sert aussi à afficher la bonne liste (responsable du service n° XX).

Deux solutions s'offrent à toi :
-php : au niveau de t'on envoie de mail tu fais une requete qui va chercher le nom correspondant au code (hum c'est dommage de faire une requete alors que toutes les infos nécessaire existe sur la page formulaire )

-javascript : tu déclenche une fonction supplémentaire sur ta liste serv qui remplit un champ caché avec le nom du service

Voici le code de la fonction à placer entre les balises <head> de ta page formulaire :
Code :
1
2
3
4
5
6
<script type="text/javascript">
function NomService()
{
document.getElementById('service').value = document.getElementById('serv').options[document.getElementById('serv').selectedIndex].text;
}
</script>
ensuite tu appelles la fonction :
Code :
1
2
3
4
5
6
7
8
 
//trouve les lignes
<label>Service : </label>
<select id="serv" name="serv" onChange="xajax_Afficherresponsable(document.getElementById('serv').value);">
 
//remplace les par
<label>Service : </label><input type="hidden" id="service" value="">
<select id="serv" name="serv" onChange="NomService();xajax_Afficherresponsable(document.getElementById('serv').value);">
passons au problème numéro deux :
Déjà la fonction addassign de xajax que tu utilise remplace intégralement le contenu du div affresponsable => donc pour afficher une liste par défaut i lsuffit de mettre une liste dans le calque

Code :
1
2
3
4
5
6
 
//retrouve la ligne
<div id="affresponsable" name="affresponsable"></div>
 
//remplace la par
<div id="affresponsable" name="affresponsable"><select id="responsable" name="responsable"><option value="00">Selectionnez responsable</option></select></div>
Je pense avoir résolu tes soucis pour la forme je te met le code de la page formmail.php
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php
$TO = "toto@toto.com";
$header  = "From: mailer@mondomaine.com\n";
$subject = $_POST['date'];
$message = "Nom : ".$_POST['nom']."\n";
$message .= "Prénom : ".$_POST['prenom']."\n";
$message .= "Service : ".$_POST['service']."  -  Responsable :".$_POST['responsable']."\n";
$message .= "Profil de référence : ".$_POST['profildereference']."\n";
$message .= "Accès messagerie : ".$_POST['accesmessagerie']."\n";
$message .= "Remarque : \n".$_POST['remarque']."\n";
if (mail($TO, $subject, $message, $header))
{
Header("Location: http://172.18.4.41/ok.htm");
}
?>
Capucine21 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/12/2007, 17h57   #11
Invité de passage
 
Inscription : mai 2007
Messages : 79
Détails du profil
Informations forums :
Inscription : mai 2007
Messages : 79
Points : 2
Points : 2
J'ai fais le test avec les modifs ci dessus
voici le resultat
ma mise en pages est amélioré j'ai bien l'affichage des 2 liste déroulantes dés le départ seul un petit pb persiste c'est que les champs de mes 2 listes déroulantes ne sont pas alignés à droite comme mes autres champs

Miantenant ce que je recois par mail:
Nom : jjjj
Prénom : jjjj
Service : - Responsable :00
Profil de référence : jjjj
Accès messagerie : oui
Remarque :
jjfhjfh

Donc ok pour nom prenom profil de reference, acces messagerie
Pas OK pour le champ service et responsable
et pour le champ remarque il commence à la ligne (ça c'est pas encore trop génant)

Merci pour toute l'aide
ju3979 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/12/2007, 09h40   #12
Invité de passage
 
Inscription : mai 2007
Messages : 79
Détails du profil
Informations forums :
Inscription : mai 2007
Messages : 79
Points : 2
Points : 2
Bonjour à tous

On m'a donné un peu d'aide donc j'ai pu avancé sur mes problèmes
Je suis pas loin du but mais il y a encore 2 petites choses qui ne marchent pas

Lors de l'envoie du mail il me récupére tous les champs sauf le champ Service et le champ responsble
Voici le mail qu'il envoit:
Nom : jjjj
Prénom : jjjj
Service : - Responsable :00
Profil de référence : jjjj
Accès messagerie : oui
Remarque :
jjfhjfh

Voici le code de mon formulaire:
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
 
<?php
include ("connexion.php");
require("xajax.inc.php");
$xajax = new xajax(); //On initialise l'objet xajax
$xajax->setCharEncoding('ISO-8859-1');
$xajax->decodeUTF8InputOn();
$xajax->registerFunction("Afficherresponsable");
$xajax->processRequests();//Fonction qui va se charger de faire les requetes APRES AVOIR DECLARER NOS FONCTIONS
 
function Afficherresponsable($id)
{
$reponse = new xajaxResponse();//Création d'une instance de xajaxResponse pour traiter les réponses serveur
$responsable='';// Initialisation de la variable $responsable
//la selection des responsables celon le service choisis
$req = mysql_query("SELECT `code_resp`,`nom` FROM `responsable` where code_resp= ".$id." ORDER BY nom") or die(mysql_error()); 
$responsable .='<select id="responsable" name="responsable">';   // on commence la declaration de la liste des villes
$responsable .='<option value="00">Selectionnez responsable</option>';
while($array = mysql_fetch_array($req))
{
$responsable .='<option value="'.$array['nom'].'">'.$array['nom'].'</option>';
}
$responsable .='</select>';
$reponse = new xajaxResponse('ISO-8859-1');
$reponse->addAssign("affresponsable","innerHTML",$responsable); // affichage du contenu de $responsable (la liste des responsable) dans le div affresponsable
return $reponse->getXML();
}
?>
<html>
<head>
<title>Nouvelle Demande</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<?php
$xajax->printJavascript(); /* Affiche le Javascript */
?>
<script type="text/javascript" src="calendar.js"></script>
<link href="test2.css" rel="stylesheet" type="text/css">
<link href="calendar.css" rel="stylesheet" type="text/css">
 
<script type="text/javascript">
function NomService()
{
document.getElementById('service').value = document.getElementById('serv').options[document.getElementById('serv').selectedIndex].text;
}
</script>
</head>
<body bgcolor="#ffffcc" onload="initCalendar()">
<form method="POST" action="formmail.php">
<p class="titre">CREATION NOUVELLE DEMANDE</p>
<fieldset id="livraisons">
<label>Nom : </label>
<input type="text" name="nom" size="30" /><br />
<label>Prenom : </label>
<input type="text" name="prenom" size="30" /><br />
<div>
<label>Service : </label><input type="hidden" id="service" value="">
<select id="serv" name="serv" onChange="NomService();xajax_Afficherresponsable(document.getElementById('serv').value);">
<option value="00">Selectionnez service </option>
<?php
$req = mysql_query("SELECT `code`,`nom` FROM `service` ORDER BY nom") or die(mysql_error());
while($array = mysql_fetch_array($req))
{
?>
<option value="<?php echo $array['code']; ?>"><?php echo $array['nom']."(".$array['code'].")"; ?></option>
<?php
}
?>
</select>
</div>
<label>Responsable : </label>
<div id="affresponsable" name="affresponsable"><select id="responsable" name="responsable"><option value="00">Selectionnez responsable</option></select></div> 
<label>Profil de référence : </label>
<input type="text" name="profildereference" size="30" /><br />
<label>Date d'entrée : </label>
<input onclick="ds_sh(this);" name="date" size="30" readonly="readonly" style="cursor:text"><br />
<table class="ds_box" cellpadding="0" cellspacing="0" id="ds_conclass" style="display: none;">
<tr><td id="ds_calclass">
</td></tr>
</table>
<p id="messagerie"><label>Accès messagerie ? : </label>
<br />
<input name="accesmessagerie" value="oui" type="radio">Oui<br />
<input name="accesmessagerie" value="non" type="radio">Non<br />
</p>
<p><label>Remarque :</label><br />
<textarea name="remarque" rows="5" cols="40"></textarea>
</p>
<p id="buttons">
<input value="Envoyer" type="submit">
<input value="Recommencer" type="reset">
</p>
</fieldset>
</form>
</body>
</html>
Et voici le code de mon script php qui me récupére les données du formualire et le envoies par mail:
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
 
<?php
$TO = "toto@toto.com";
$header  = "From: mailer@nomdedomaine.com\n";
$subject = $_POST['date'];
$message = "Nom : ".$_POST['nom']."\n";
$message .= "Prénom : ".$_POST['prenom']."\n";
$message .= "Service : ".$_POST['service']."  -  Responsable :".$_POST['responsable']."\n";
$message .= "Profil de référence : ".$_POST['profildereference']."\n";
$message .= "Accès messagerie : ".$_POST['accesmessagerie']."\n";
$message .= "Remarque : \n".$_POST['remarque']."\n";
if (mail($TO, $subject, $message, $header))
{
Header("Location: http://172.18.4.41/ok.htm");
}
?>
Pouvez vous m'aider
D'avance un grand merci
ju3979 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/12/2007, 13h51   #13
Invité de passage
 
Inscription : mai 2007
Messages : 79
Détails du profil
Informations forums :
Inscription : mai 2007
Messages : 79
Points : 2
Points : 2
Bonjour

Je me suis rendu compte que dans mon sctip formmail.php je ne récupére pas la bonne variable, j'ai donc remplacé "Service : ".$_POST['Service']." par "Service : ".$_POST['Serv']."
Et la dans le mail que je reçois de mon formulaire j'ai bien le champ responsable ainsi que tous les autes champ sauf le champ service
Ca fait des jours et des jours que j'essaye de modifier des bouts de code pour trouver une solution mais sans succès..., je ne sais plus quoi faire............. de l'aide svp merci
ju3979 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/12/2007, 17h53   #14
Rédacteur/Modérateur
 
Avatar de 12monkeys
 
Homme Dr. Peters
Webmaster
Inscription : novembre 2006
Messages : 3 628
Détails du profil
Informations personnelles :
Nom : Homme Dr. Peters
Âge : 35
Localisation : France, Bas Rhin (Alsace)

Informations professionnelles :
Activité : Webmaster
Secteur : Service public

Informations forums :
Inscription : novembre 2006
Messages : 3 628
Points : 6 232
Points : 6 232
Hello

Ton select a comme nom "serv" :

Code :
<select id="serv" name="serv"
et dans ton code tu dis avoir mis :

Code :
"Service : ".$_POST['Serv']."
Serv et serv ne sont pas pareil... Si $_POST est sensible à la casse (je n'en suis pas sur) le problème peut venir de là...

Autrement je ne vois pas...
__________________
Vous débutez dans la creation de sites web : les bases du html et débuter avec les CSS
Pas de MP pour des questions techniques ! Mode d'emploi du forum ; Règles ; Pensez à la balise code ; Pas de SMS !
Votez pour les messages qui vous ont aidés...
12monkeys est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/12/2007, 08h03   #15
Invité de passage
 
Inscription : mai 2007
Messages : 79
Détails du profil
Informations forums :
Inscription : mai 2007
Messages : 79
Points : 2
Points : 2
j'ai fais la modif
La je reçois dans mon mail le code du service (qui est un chiffre) mais pas le nom du service

Merci pour l'aide
ju3979 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/12/2007, 08h35   #16
Rédacteur/Modérateur
 
Avatar de 12monkeys
 
Homme Dr. Peters
Webmaster
Inscription : novembre 2006
Messages : 3 628
Détails du profil
Informations personnelles :
Nom : Homme Dr. Peters
Âge : 35
Localisation : France, Bas Rhin (Alsace)

Informations professionnelles :
Activité : Webmaster
Secteur : Service public

Informations forums :
Inscription : novembre 2006
Messages : 3 628
Points : 6 232
Points : 6 232
Hello

Dans ton select ça te renvoi la valeur de value qui dans ton cas est $array['code'] :

Code :
<option value="<?php echo $array['code']; ?>"><?php echo $array['nom']."(".$array['code'].")"; ?></option>
Eventuellement rajoute ce que tu as mis entre les balises option :

Code :
<option value="<?php echo $array['nom']."(".$array['code'].")"; ?>"><?php echo $array['nom']."(".$array['code'].")"; ?></option>
__________________
Vous débutez dans la creation de sites web : les bases du html et débuter avec les CSS
Pas de MP pour des questions techniques ! Mode d'emploi du forum ; Règles ; Pensez à la balise code ; Pas de SMS !
Votez pour les messages qui vous ont aidés...
12monkeys est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/12/2007, 15h13   #17
Invité de passage
 
Inscription : mai 2007
Messages : 79
Détails du profil
Informations forums :
Inscription : mai 2007
Messages : 79
Points : 2
Points : 2
Bonjour

Si je fais ça j'ai un message d'erreur quand je selctionne quelquechose dans ma première liste déroulante
Message du type: Error the xml response was returned from the server is invalid
Received: You have an error in your SQL syntax. Check the manual taht corresponds to your MySQL server version for the right suntax to use near '(5) ORDER BY nom' at line 1

Merci pour votre aide
ju3979 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 07h49.


 
 
 
 
Partenaires

Hébergement Web