Bonjour à tous,
je suis en train de réaliser un formulaire qui contient 2 listes déroulantes dont la première est liée à la 2ème liste, j'ai remarqué que les données de la première liste (joursemaine) s'affiche sous forme de point d'intérrogation mais étant à peine débutante dans ce cas j'ai pas compris qu'est ce que cela veut dire, je vais posté une imprime écran de mon formulaire pour mieux clarifier
Nom : ajax2.png
Affichages : 2084
Taille : 11,9 Ko

ci-dessous est le code source que j'ai utilisé
le script update.php
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
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
 
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <link   href="css/bootstrap.min.css" rel="stylesheet">
    <script src="js/bootstrap.min.js"></script>
	<meta name="Description" content="Exemple d'une liste liée en AJAX." />
 
<link rel="stylesheet" type="text/css" href="style.css" />
 
<script type="text/javascript" src="fonctions.js"></script>
 
 
</head>
 
<body>
 
    <div class="container">
 
    			<div class="span10 offset1">
 
 
	    			<form class="form-horizontal" action="updateChauf.php?id=<?php echo $id?>" method="post">
					  <div class="control-group 
					    <label class="control-label">      identifiant</label>
					    <div class="controls">
					      	<input readonly  name="id_personnel" type="text"  placeholder=  "      identifiant " value="<?php echo !empty($id)?$id:'';?>">
 
 
 
					    </div>
					  </div>
 
					  <!--service-->
 
					  <div class="control-group   
					 <label class="control-label">      service</label>
					    <div  >
				<?php
$pdo = Database::connect();
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$sql = "SELECT servicelog FROM servicelog ORDER BY id DESC";
$q = $pdo->prepare($sql);
$q->execute();
$data = $q->fetchAll(PDO::FETCH_ASSOC);
Database::disconnect();
?>
<select  size=1 name="service" id="service">
<option value="-1">--service--</option>
<?php foreach($data as $value): ?>
<option value="<?php echo $value['servicelog'] ?>"> <?php echo $value['servicelog'] ?></option>
<?php endforeach; ?>
</select>
					    </div>
	                     </div>
 
						 <!--service-->
 
 
 
 
 
 
                        <!--joursemaine-->
 
					<label>     joursemaine: </label>
 
<select name="joursemaine" id="joursemaine" onchange="Departements(this.value);">
 
<option value="vide">- - -joursemaine - - -</option>
 
<?php
 
//Variable de connexions BDD
$nom_du_serveur ="localhost";
 
$nom_de_la_base ="ges_tache";
 
$nom_utilisateur ="root";
 
$passe ="";
 
 
 
 
//Connexion à la base de données
 
mysql_connect("$nom_du_serveur","$nom_utilisateur","$passe");
//Vérification d'accès à la base de données
 
mysql_select_db("$nom_de_la_base") or die ('Erreur :'.mysql_error());
 
//On sélectionne toutes les régions
 
$selectregion = mysql_query("SELECT id_joursemaine,joursemaine FROM joursemaine ORDER BY joursemaine") or die (mysql_error());
 
while($donnees = mysql_fetch_array($selectregion))
 
{
 
    echo '<option value="'.$donnees['id_joursemaine'].'"';
 
    if(isset($_POST["joursemaine"]) && $_POST["joursemaine"]==$donnees['id_joursemaine']){echo " selected";}
 
    echo '>'.$donnees['joursemaine'].'</option>';
 
}
 
?>
 
</select><br/>
 
					  <!--joursemaine-->
 
 
 
 
<!-- Dans ce bloc sera affiché la liste des scores -->
 
<div id="blocDepartements">
 
<?php
 
/*Pour garder la sélection de la seconde liste, on l'inclue directement dans la page lors de la validation du formulaire*/
 
if(isset($_POST['joursemaine'])){
 
//on créer une variable utilisé dans la page "traitement.php"
 
$include = 1;
 
//on inclue la page
 
include('traitement.php');
 
}
 
?>
 
</div>
 
<!-- Fin du bloc des scores -->
 
<div class="form-actions">
						  <button type="submit" class="btn btn-success">تعيين</button>
						  <a class="btn" href="chaufAffect.php">رجوع</a>
						</div>
					</form>
le script fonctions.js
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
//Fonction d'Instance
 
function objet_XMLHttpRequest()
 
{
 
    var xhr = null;
 
 
 
    if (window.XMLHttpRequest || window.ActiveXObject){
 
        if(window.ActiveXObject){
 
            try{
 
                xhr = new ActiveXObject("Msxml2.XMLHTTP");
 
            }
 
            catch(e){
 
                xhr = new ActiveXObject("Microsoft.XMLHTTP");
 
            }
 
        }
 
        else{
 
            xhr = new XMLHttpRequest();
 
        }
 
    }
 
    else{
 
        alert("Votre navigateur ne supporte pas l'objet XMLHTTPRequest...");
 
        return null;
 
    }
 
    return xhr;
 
}
 
//Fonction permettant d'envoyer les données
 
function Departements(id)
 
{
 
    //On déclare un objet
 
    var objet1 = objet_XMLHttpRequest();
 
 
 
    //On défini ce qu'on va faire quand on aura la réponse
 
    objet1.onreadystatechange = function(){
 
        //On ne fait quelque chose que si on a tout reçu et que le serveur est ok
 
        if(objet1.readyState == 4 && objet1.status == 200){
 
            //On envoie la réponse dans le div "blocDepartements"
 
            document.getElementById('blocDepartements').innerHTML = objet1.responseText;
 
        }
 
        //côté ajax ça merde
 
        else{
 
            //on contrôle le statut. Si 404, le fichier ouvert par "open" n'existe pas
 
            if(objet1.status == 404){
 
                alert('Erreur ' +objet1.status + '! Le fichier php semble être absent...');
 
            }
 
        }
 
    }
 
    //Ouverture : méthode, fichier, mode (true=asynchrone | false=synchrone)
 
    objet1.open("POST", "traitement.php" , true);
 
    objet1.setRequestHeader("Content-type","application/x-www-form-urlencoded");
 
    //envoie
 
    objet1.send("joursemaine=" + id);
 
}
le script traitement.php

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
<?php
 
//Numéro de la région
 
if(isset($_POST["joursemaine"]) && $_POST["joursemaine"] != 'vide'){
 
/*Si la variable $include n'existe pas c'est que le numéro de la région passe par AJAX. On a donc besoin d'avoir une connexion avec la base de données.*/
 
/*Quand on poste le formulaire, cette page est inclue directement dans le div "blocDepartements", donc la connexion est inutile.*/
 
/*Si on inlcue cette page au moment de la validation, c'est uniquement pour garder la sélection "selected" de la liste.*/
 
if(!isset($include)){
 
//On indique le Content-Type utilisé
 
header('Content-Type: text/html; charset="iso-8859-1"');
 
 
 
//Variable de connexion BDD
 
$nom_du_serveur ="localhost";
 
$nom_de_la_base ="ges_tache";
 
$nom_utilisateur ="root";
 
$passe ="";
 
 
 
//Connexion à la base de données
 
mysql_connect("$nom_du_serveur","$nom_utilisateur","$passe");
 
//Vérification d'accès à la base de données
 
mysql_select_db("$nom_de_la_base") or die ('Erreur :'.mysql_error());
 
echo '<div id="reponse">La variable $_POST["joursemaine"] provient d\'AJAX.</div>';
 
}
 
else{
 
echo '<div id="reponse">La variable $_POST["joursemaine"] provient de l\'include.</div>';
 
}
 
 
?>
 
 
 
<label>score : </label>
 
<select name="score" id="score">
 
<option value="vide">- - - score- - -</option>
 
<?php
 
//On sélectionne les score en fonction du numéro de la journée choisi
 
$selectdepartement = mysql_query("SELECT score FROM scorejour WHERE id_joursemaine=".mysql_real_escape_string($_POST["joursemaine"])." ORDER BY score") or die (mysql_error());
 
//On boucle
 
while($donnees = mysql_fetch_assoc($selectdepartement))
 
{
 
echo '<option value="'.$donnees['id_score'].'"';
 
if(isset($_POST["score"]) && $_POST["score"]==$donnees['id_score']){ echo " selected"; }
 
echo '>'.$donnees['score'].'</option>';
 
}
 
?>
 
</select><br/>
 
<?php } ?>
J'éspère que quelqu'un peut m'aider, merci d'avance