Bonjour,
Après avoir lu le tuto suivant http://http://siddh.developpez.com/articles/ajax/ et appliqué ce qu'ils disaient je me retrouve avec les deux pages de code suivant : (index.php)et ajaxChantier.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 <html> <head> <title>Test_code</title> <script type='text/javascript'> function getXhr(){ var xhr = null; if(window.XMLHttpRequest) // Firefox et autres xhr = new XMLHttpRequest(); else if(window.ActiveXObject){ // Internet Explorer try { xhr = new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { xhr = new ActiveXObject("Microsoft.XMLHTTP"); } } else { // XMLHttpRequest non supporté par le navigateur alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest..."); xhr = false; } return xhr; } /** * Méthode qui sera appelée sur le click du bouton */ function go(){ var xhr = getXhr(); // On défini ce qu'on va faire quand on aura la réponse xhr.onreadystatechange = function(){ // On ne fait quelque chose que si on a tout reçu et que le serveur est ok if(xhr.readyState == 4 && xhr.status == 200){ leselect = xhr.responseText; // On se sert de innerHTML pour rajouter les options a la liste document.getElementById('chantier').innerHTML = leselect; } } // Ici on va voir comment faire du post xhr.open("POST","ajaxChantier.php",true); // ne pas oublier ça pour le post xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded'); // ne pas oublier de poster les arguments // ici, l'id du client sel = document.getElementById('client'); idclient = sel.options[sel.selectedIndex].value; xhr.send("id_client="+idclient); } </script> </head> <body> <form> <fieldset style="width: 500px"> <label>Client</label> <select name='client' id='client' onchange='go()'> <option value='-1'>--- Selectionner un client ---</option> <?php $bdd =pg_connect("host=localhost port=5432 dbname=postgres user=postgres password=*******"); $sql = 'SELECT * FROM client ORDER BY nom_prenom'; $req = pg_query($sql) or die('Erreur SQL !<br/>'.$sql.'<br/>'.pg_last_error()); while ($data = pg_fetch_array($req)){ ?> <option value="<?php echo $data['nom_prenom']; ?>"><?php echo $data['nom_prenom']; ?></option> <?php } ?> </select> <label>Chantier</label> <div id='chantier' style='display:inline'> <select name='chantier'> <option value='-1'>---Choisir une date---</option> </select> </div> </fieldset> </form> </body> </html>
Code php : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 <?php echo "<select name='chantier'>"; if(isset($_POST['client'])){ $bdd =pg_connect("host=localhost port=5432 dbname=postgres user=postgres password=*******"); $sql1 = 'SELECT id,date FROM chantier WHERE id_client = ".$_POST["id_client"]."ORDER BY date'; $req1 = pg_query($sql1) or die('Erreur SQL !<br/>'.$sql1.'<br/>'.pg_last_error()); while ($data1 = pg_fetch_assoc($req1)){ print $data1; ?> <option value="<?php echo $data1['date']; ?>"><?php echo $data1['date']; ?></option> <?php } } ?>
Lorsque je clique sur le client dont je veux voir la liste de ses chantiers, la liste associée s'actualise mais elle est vide. Cela fait deux jours que je bloque, pouvez vous y jeter un coup d’œil svp. Je ne vois pas ou j'ai pu me tromper.
Merci
Partager