Php 5 et script en php inférieur

energie13
Invité n'ayant pas de compte PHPfrance

06 févr. 2006, 16:37

Bonjour,
Je me penche sur ajax et j'utilise la derniere version de wamp (php5)
Je trouve un super tuto :
http://www.asp-php.net/scripts/asp-php/ajax.php?page=3

voici le résultat :
http://213.186.37.71/~demos/adresse/test.php

Le problème c'est que lorsque je le suis à la lettre en effectuant une bête copie des tables et du script ca ne fonctionne pas. Pire le code apparait dans mon formulaire quand je lance ma page: :(

Code : Tout sélectionner

@$_POST["civ"], "nom"=>@$_POST["nom"], "prenom"=>@$_POST["prenom"], "adresse"=>@$_POST["adresse"], "adresse2"=>@$_POST["adresse2"], "Departement"=>@$_POST["list0"], "Codepos"=>@$_POST["list1"], "INSEE"=>@$_POST["list2"], ); include("ville.php"); ?> "?>
Je ne comprends vraiment pas Si quelqu'un peut me donner une explication.

Merci par avance

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

06 févr. 2006, 16:46

Salut, peut tu être plus précis sur
ca ne fonctionne pas.
Pire le code apparait dans mon formulaire quand je lance ma page: :(
Est-ce que la page est as une extension .php ?

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

energie13
Invité n'ayant pas de compte PHPfrance

06 févr. 2006, 17:02

Oui la page comporte bien l'extension php.
Lorsque je clique sur la partie dynamique du forulaire (département ou code postal ) les valeurs ne sont pas chargées.

ville.php

Code : Tout sélectionner

<? $table = "villes"; include("_conn.php"); switch($q=@$_GET["q"]) { case "1": // Liste des codes postaux $query = "SELECT DISTINCT Codepos FROM $table" . " WHERE Departement = '".$_POST["champ"]."' ORDER BY 1"; case "2": // Liste des communes if(!@$query) $query = "SELECT Commune,INSEE FROM $table" . " WHERE Codepos = '".$_POST["champ"]."' ORDER BY 1"; echo 'var o = null;'; echo 'var s = document.forms["'.$_POST["form"].'"].elements["'.$_POST["select"].'"];'; echo 's.options.length = 0;'; if($q<2) echo 's.options[s.options.length] = new Option("Choisir","");'; $result = @mysql_query($query); while($r = mysql_fetch_array($result)) echo 's.options[s.options.length] = new Option("'.$r[0].'","'.((@$r[1])?$r[1]:$r[0]).'");'; echo 'update('.$q.');'; break; default: // Liste des départements $liste_dpt = ""; $SQL = "SELECT DISTINCT Departement FROM $table ORDER BY 1"; $res = mysql_query($SQL); while($val = mysql_fetch_array($res)) $liste_dpt .= "<option value=\"".$val[0]."\">".$val[0]."</option>\n"; // Nom de la commune d'après le code INSEE if(@$adresse["INSEE"]) { $SQL = "SELECT Commune FROM $table WHERE INSEE='".$adresse["INSEE"]."'"; $res = mysql_query($SQL); $adresse["Commune"] = mysql_result($res,0,0); } } @mysql_close(); ?>
formulaire.php

Code : Tout sélectionner

<? // On peut aussi extraire ce tableau d'une DB ;) $adresse = array( "civ"=>@$_POST["civ"], "nom"=>@$_POST["nom"], "prenom"=>@$_POST["prenom"], "adresse"=>@$_POST["adresse"], "adresse2"=>@$_POST["adresse2"], "Departement"=>@$_POST["list0"], "Codepos"=>@$_POST["list1"], "INSEE"=>@$_POST["list2"], ); include("ville.php"); ?><HTML><HEAD> <SCRIPT language="JavaScript"> // Mise à jour des listes via XMLHttpRequest function liste(f,q,t) { var l1 = f.elements["list"+(q-1)]; var l2 = f.elements["list"+q]; var index = l1.selectedIndex; for(i=q;i<=t;i++) f.elements["list"+i].options.length = 0; if(index > 0) { var xhr_object = null; if(window.XMLHttpRequest) // Firefox xhr_object = new XMLHttpRequest(); else if(window.ActiveXObject) // Internet Explorer xhr_object = new ActiveXObject("Microsoft.XMLHTTP"); else { // XMLHttpRequest non supporté par le navigateur alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest..."); return; } xhr_object.open("POST", "ville.php?q="+q, true); xhr_object.onreadystatechange = function() { if(xhr_object.readyState == 4) eval(xhr_object.responseText); } xhr_object.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); var data = "champ="+escape(l1.options[index].value) +"&form="+f.name+"&select=list"+q; xhr_object.send(data); } } // Mise à jour du selectedIndex d'une liste function update(L) { v = new Array; v[0] = "<?=@$adresse["Departement"]?>"; v[1] = "<?=@$adresse["Codepos"]?>"; v[2] = "<?=@$adresse["INSEE"]?>"; if(v[L]=="") return; f = document.forms.form_selects; L0 = f.elements["list"+L]; for(i=0;i<L0.options.length;i++) if(L0.options[i].value==v[L]) { L0.selectedIndex=i; if(L<2) liste(f,L+1,2); break; } } // Validation du formulaire function test(f) { if(f.nom.value!="") if(f.adresse.value!="") if(f.elements["list2"].options.length!=0) return true; alert("Formulaire incomplet !"); return false; } </SCRIPT> <STYLE TYPE="text/css"> td,select,input { font:normal 8pt Verdana } .select1 {width:170px} .select2 {width:80px} </STYLE> </HEAD><BODY onload="update(0)"> <strong><?=htmlentities(@$adresse["civ"]." ".ucfirst(@$adresse["prenom"]) ." ".strtoupper(@$adresse["nom"]))?></strong><br/> <?=htmlentities(@$adresse["adresse"])?><br/> <?if(@$adresse["adresse2"]) echo htmlentities($adresse["adresse2"])."<br/>"?> <strong><?=$adresse["Codepos"]." ".@$adresse["Commune"]?></strong><br/> <br/> <table><tr><td><fieldset> <legend>Vos coordonnées&nbsp;</legend> <table><form name="form_selects" id="form_selects" method="POST" onsubmit="return test(this)";> <tr> <td align="right">Civilité&nbsp;:</td> <td><select name="civ"> <?$civ = array("M."=>"Monsieur","Mme"=>"Madame","Mlle"=>"Mademoiselle"); foreach($civ as $c1=>$c2) { ?> <option value="<?=$c1?>" <?if($c1==@$adresse["civ"]) echo "SELECTED"?> ><?=$c2?></option> <? } ?> </select></td> </tr><tr> <td align="right">Nom&nbsp;<font color=red>*</font></td> <td colspan=3><table border=0 cellspacing=0 cellpadding=0><tr> <td><input name="nom" size=21 value="<?=htmlentities(@$adresse["nom"])?>"/></td> <td align="right">&nbsp;Prénom&nbsp;:&nbsp;</td> <td><input name="prenom" size=21 value="<?=htmlentities(@$adresse["prenom"])?>"/></td> </tr></table></td> </tr><tr> <td align="right">Adresse&nbsp;<font color=red>*</font></td> <td colspan=3><input name="adresse" size=55 value="<?=htmlentities(@$adresse["adresse"])?>"/></td> </tr><tr> <td align="right">Complément&nbsp;:</td> <td colspan=3><input name="adresse2" size=55 value="<?=htmlentities(@$adresse["adresse2"])?>"/></td> </tr><tr> <td align="right">Département&nbsp;:</td> <td><select class="select1" name="list0" id="list0" onchange="liste(this.form,1,2)"> <option value="">== Choisir ==</option> <?=$liste_dpt?> </select></td> <td>Code Postal&nbsp;:</td> <td><select class="select2" name="list1" id="list1" onchange="liste(this.form,2,2)"> </select></td> </tr><tr> <td align="right">Commune&nbsp;<font color=red>*</font></td> <td><select class="select1" name="list2" id="list2"> </select></td> </tr><tr> <td colspan=4 align="center"><input type="submit" value="Envoyer"/></td> </tr> </form></table> </fieldset></td></tr></table> </BODY></HTML>

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

07 févr. 2006, 01:34

la BD est-elle remplie ?

tu n'as pas d'erreurs d'exécutions ?

ajoute des messages d'erreurs au ecéxutions de requetes:
mysql_query($query) or die('Erreur SQL !<br />'.$query.' <br />'.mysql_error());
enleve tous les @ qui masquent les eventuelles erreurs

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute