bonjour,
j'ai suivit le tutoriel "Web 2.0, allez plus loin avec AJAX et XMLHttpRequest"
il fonctionne a merveille .
j'ai voulus l'adapter pour d'autre table , histoire de voire si j'avais bien compris, et ben non
j'ai un soucis :
contexte :
j'ai deux table mysql nagios_services et nagios_hosts
dans nagios_hosts je veux recuperer l'alias et le host_object_id
et je veux que en fonction de l'alias il m'affiche les services associé .
donc dans nagios_services .
(select display_name from nagios_services where host_object-id="valeur poster de host_object_id@nagios_hosts)

voici le code oui j'ai meme pas changer le nom du script :
auteurs2.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
[root@redoracle html]# cat auteurs2.php
<html>
        <head>
                <title>Tutoriel Ajax (XHTML + JavaScript + XML)</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éar le navigateur
                                   alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest...");
                                   xhr = false;
                                }
                                return xhr;
                        }
 
                        /**
                        * Méode qui sera appelésur le click du bouton
                        */
                        function go(){
                                var xhr = getXhr();
                                // On déni ce qu'on va faire quand on aura la rénse
                                xhr.onreadystatechange = function(){
                                        // On ne fait quelque chose que si on a tout reç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('Object').innerHTML = leselect;
                                        }
                                }
 
                                // Ici on va voir comment faire du post
                                xhr.open("POST","ajaxlivre2.php",true);
                                // ne pas oublier çpour le post
                                xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
                                // ne pas oublier de poster les arguments
                                // ici, l'id de l'auteur
                                sel = document.getElementById('alias');
                                alias = sel.options[sel.selectedIndex].value;
                                xhr.send("alias="+alias);
                        }
                </script>
        </head>
        <body>
<form>
                        <fieldset style="width: 500px">
                                <legend>Liste </legend>
                                <label>Server</label>
                                <select name='alias' id='alias' onchange='go()'>
                                        <option value='-1'>Aucun</option>
                                        <?
                                                mysql_connect("localhost","root","");
                                                mysql_select_db("centstatus");
                                                $res = mysql_query("SELECT distinct(alias),host_object_id FROM nagios_hosts ORDER BY alias");
                                                while($row = mysql_fetch_assoc($res)){
                                                        echo "<option value='".$row["host_object_id"]."'>".$row["alias"]."</option>";
 
                                                }
                                        ?>
                                </select>
                                <label>Services</label>
                                <div id='"host_object_id"' style='display:inline'>
                                <select name='"Object"'>
                                        <option value='-1'>Choisir un Object</option>
                                </select>
                                </div>
                        </fieldset>
                </form>
 
        </body>
</html>
ajaxlivre2.php
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
<?php
        echo "<select name='Object' >";
        if(isset($_POST["alias"])){
                mysql_connect("localhost","root","");
                mysql_select_db("centstatus");
                $res = mysql_query("SELECT host_object_id, display_name FROM nagios_services
                        WHERE where host_object_id=".$_POST["alias"]." );
                while($row = mysql_fetch_assoc($res)){
                        echo "<option value='".$row["host_object_id"]."'>".$row["display_name"]."</option>";
                }
        }
        echo "</select>";
?>
et avec firebug j'ai cette erreur :
-document.getElementById(
onreadystatechange()
document.getElementById('Object').innerHTML = leselect;

quelqu'un pourrais m'aider je voie pas ou je me suis planter ?

Merci