ajax parse error

ViPHP
ViPHP | 5462 Messages

26 sept. 2010, 03:33

si je l'ai mis mais je l'ai enlevé et le "idpays" je l'ai remplacé par "nompays" mais j'obtiens le warning
on va faire raccourcis
fais comme ca plutot :
$sql = "SELECT nomville FROM ville WHERE nompays='".$_POST["nompays"]."' ORDER BY nomville";
$res = mysql_query($sql) or exit($sql . <br /> . mysql_error());

Eléphant du PHP | 51 Messages

26 sept. 2010, 03:55

effectivement je crois que j'ai une erreur dans ma requete
$res = mysql_query("SELECT nomville FROM ville
            WHERE nompays='".$_POST["nompays"]."' ORDER BY nomville");
le champ "nompays" n'existe pas dans la table ville mais le champ "idpays" si,donc j'ai remplacé "nompays" par "idpays" seulement dans $_POST le "idpays" n'existe pas!j'ai donc aussi modifié la première requete et j'ai fait un select * au lieu d'un select nompays mais ca ne donne rien

ViPHP
ViPHP | 5462 Messages

26 sept. 2010, 04:09

il suffis de mettre l'id des pays dans le value des options

Eléphant du PHP | 51 Messages

26 sept. 2010, 04:16

excusez moi mais je jette l'éponge pour aujourd'hui j'ai beau tout essayé je n'arrive plus à reflechir(je me demande bien à quoi)
merci à vous stealth

ViPHP
ViPHP | 5462 Messages

26 sept. 2010, 04:24

excusez moi mais je jette l'éponge pour aujourd'hui j'ai beau tout essayé je n'arrive plus à reflechir(je me demande bien à quoi)
merci à vous stealth
bon allé
<html>
        <head>
                <title>Page pays ville</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('ville').innerHTML = leselect;

                                        }
                                }

                                // Ici on va voir comment faire du post
                                xhr.open("POST","ville.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 pays
                                sel = document.getElementById('pays');
                                idpays = sel.options[sel.selectedIndex].value;
                                xhr.send("idpays="+idpays);
                        }
                </script>
        </head>
        <body>
                <form>
                        <fieldset style="width: 400px">
                                <legend>Liste liées</legend>
                                <label>Pays</label>
                                <select name='pays' id='pays' onchange='go()'>
                                        <option value=''>Choisir un pays</option>
                                        <?php
                                        mysql_connect("localhost","root","");
                                        mysql_select_db("base1");
                                        $sql = "SELECT id, nompays FROM pays ORDER BY nompays";
                                        $res = mysql_query($sql) or exit($sql . '<br />' . mysql_error());
                                        while($row = mysql_fetch_assoc($res)){
                                                echo '<option value="'.$row["id"].'">' . $row["nompays"] .  '</option>';
                                        }
                                        ?>
                                </select>
                                <label>Villes</label>
                                <div id='ville' style='display:inline'>
                                <select name='ville'>
                                        <option value=''>Choisir une ville</option>
                                </select>
                                </div>
                        </fieldset>
                </form>
        </body>
</html>
adapte le id suivant ta table
if(isset($_POST["idpays"])){
    mysql_connect("localhost","root","");
    mysql_select_db("base1");
    $sql = "SELECT id, nomville FROM ville WHERE idpays='".$_POST["idpays"]."' ORDER BY nomville";
    $res = mysql_query($sql) or exit($sql . '<br />' . mysql_error());
    while($row = mysql_fetch_assoc($res)){
        echo '<option value="'.$row["id"].'">'.$row["nomville"].' </option>';
    }
} else {
    echo 'idpays non valide';
}
adapte le id aussi

Eléphant du PHP | 51 Messages

27 sept. 2010, 00:53

bonsoir et merci pour votre et effort et votre patience.
j'ai utilisé le code que vous m'avez donné seulement quand je selectionne un paysje n'obtiens rien dans la liste des villes et si je selectionne un autre pays l'execution s'arrete dans la ligne if(isset($_POST["idpays"])){ du fichier ville.php

ViPHP
ViPHP | 5462 Messages

27 sept. 2010, 00:56

t'es sur de tout les valeurs misent, les id et compagnie, refait le debugage de $_POST, verifie ce que retourne firebug

Eléphant du PHP | 51 Messages

27 sept. 2010, 12:49

bonjour
voici le code après modification des id
<html>
        <head>
                <title>Page pays ville</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('ville').innerHTML = leselect;

                                        }
                                }

                                // Ici on va voir comment faire du post
                                xhr.open("POST","ville.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 pays
                                sel = document.getElementById('pays');
                                idpays = sel.options[sel.selectedIndex].value;
                                xhr.send("idpays="+idpays);
                        }
                </script>
        </head>
        <body>
                <form>
                        <fieldset style="width: 400px">
                                <legend>Liste liées</legend>
                                <label>Pays</label>
                                <select name='pays' id='pays' onchange='go()'>
                                        <option value=''>Choisir un pays</option>
                                        <?php
                                        mysql_connect("localhost","root","");
                                        mysql_select_db("base1");
                                        $sql = "SELECT idpays, nompays FROM pays ORDER BY nompays";
                                        $res = mysql_query($sql) or exit($sql . '<br />' . mysql_error());
                                        while($row = mysql_fetch_assoc($res)){
                                        	echo '<option value="'.$row["idpays"].'">' . $row["nompays"] .  '</option>';
                                        }
                                        ?>
                                </select>
                                <label>Villes</label>
                                <div id='ville' style='display:inline'>
                                <select name='ville'>
                                        <option value=''>Choisir une ville</option>
                                </select>
                                </div>
                        </fieldset>
                </form>
        </body>
</html>
<?php
if(isset($_POST["idpays"])){
	mysql_connect("localhost","root","");
	mysql_select_db("base1");
	$sql = "SELECT idville, nomville FROM ville WHERE idpays='".$_POST["idpays"]."' ORDER BY nomville";
	$res = mysql_query($sql) or exit($sql . '<br />' . mysql_error());
	while($row = mysql_fetch_assoc($res)){
		echo '<option value="'.$row["idville"].'">'.$row["nomville"].' </option>';
	}
} else {
	echo 'idpays non valide';
}
?>
et firebug ne signale rien

ViPHP
ViPHP | 5462 Messages

27 sept. 2010, 17:09

ta pas un test en ligne ? tu m'envoie par MP l'adresse

Eléphant du PHP | 51 Messages

27 sept. 2010, 17:40

non malheureusement je n'ai pas un test en ligne et je ne vous cache pas je deviens dingue :afraid:

ViPHP
ViPHP | 5462 Messages

27 sept. 2010, 17:44

essayes sans l'ajax

pays -> ville

Eléphant du PHP | 51 Messages

27 sept. 2010, 18:38

essayes sans l'ajax

pays -> ville
ù
excusez moi mais je ne vous suis pas,pouvez vous m'expliquer plus?

ViPHP
ViPHP | 5462 Messages

27 sept. 2010, 18:39

ton form tu le redirige vers l'autre page
tu selectionnes ton pays et tu fais valider, tu va bien voir les erreur et si y'a les option

Invité
Invité n'ayant pas de compte PHPfrance

27 sept. 2010, 19:54

désolé je n'ai pas compris

Eléphant du PHP | 51 Messages

28 sept. 2010, 12:41

voila ce que j'obtiens après une première selection(capture.png) et quand je fais une deuxième selection j'obtiens(capture2.png)
si ca peut vous aider à comprendre ce qui se passe
merci