soucis avec balise select controlée par ajax

Invité
Invité n'ayant pas de compte PHPfrance

04 juil. 2008, 15:55

Bonjour, je suis entrain de réaliser un formulaire avec une verification de code postal en Ajax.

Le problème est qu'arrivé au moment ou la partie javascript est censé lire le xml que lui envoie mon fichier
php quelque chose ne marche pas.. Mais je n'arrive pas à savoir quoi (et je ne suis pas trés calé en javascript)

Voici tout d'abord un extrait de la fonction du fichier php (tout marche bien de ce côté normalement ) :
$codepostal = $_POST["codepostal"];

	         $codepostal = intval($codepostal);
	         $sql = "SELECT loc_nom  FROM localite WHERE loc_cp = $codepostal";
	         $dbresult = $dbh->query($sql);
	         $localite = array();
			 if($dbresult && $rows = $dbresult->fetchAll()){
		          for($i=0;$i< count($rows);$i++){
		          	$localite[$i] = $rows[$i]['loc_nom'];
		          }
				  
	         }else{
		           $localite[0] = "false";
	         }
			 
header('Content-type: text/xml');
// on retourne le resultat sous format xml
$xml = '<resultats>';
for($i=0;$i<count($localite);$i++){
	$xml .= '<resultat laville="'.$localite[$i].'"></resultat>';
}
$xml .= '</resultats>';
print $xml;
et voici la fonction du fichier javascript censé décortiquer le xml :
function afficheVille(obj){
	ville_alert = document.getElementById('ville_alert');
	// suppression du texte existant
	while (ville_alert.firstChild != null) {
		ville_alert.removeChild(ville_alert.firstChild);
	}
	
	// Construction des noeuds
	var tabResult = obj.responseXML;
	var resultat =[];
	var laville = '';
	
	for(i=0; i< tabResult.childNodes.length;i++)
	{
			resultat[i] = tabResult.getElementsByTagName('resultat')[i];
			laville[i] = resultat[i].getAttribute('laville');
			if(laville[i] == "false"){
				ville_alert.options[i] = new Option(' ... ', ' ... ');
			}else{
				ville_alert.options[i] = new Option(laville[i], laville[i]);
			}
    }
}
Le comportement attendu est que j'obtienne donc les ' ...' si aucunes villes ne correspond, et les villes
si le code postal correspond, au lieu de cela j'obtiens continuellement "undefined" dans ma balise select, mais
aucune erreur dans firebug en revanche.

Quelqu'un peut-il m'aider à cerner mon problème ?