Http请求返回xml值,但html集合为空



我是一名学生,这是我的第一篇帖子,如果不好的话,很抱歉。对于一个为发现Ajax而进行的学校项目,我不得不使用它。原理应该很简单:填充一个下拉列表,动态地用关于下拉列表中所选内容的信息填充html文本字段。我遇到的问题是,我的Http请求给了我所需的xml,但当我试图获得HtmlCollections的长度时,它说0。对我来说,当我使用element=element.getElementByTag(标记名(时会发生一些错误。我用来执行所需sql查询的方法正在运行感谢awnsers,我已经为此工作了一整天,我正在拼命寻求帮助。经过几个小时的研究,我想我设法在xml中获得了我想要的信息,但在那之后,当我试图使用responseXML.getElementsByTagName((将其链接到html时,我在html集合中没有显示任何结果,我纠正了自己(没有正确地写responseXML.getElementsByTagName(,但它没有改变任何事情,也许我写了其他错误?

<?php
require_once ("requeteBaseDonnee.inc.php");
var_dump($_POST["nomvisiteur"]);

$resultat = getinfoVisiteur($_POST["nomvisiteur"]);

?>
<?xml version="1.0" encoding="UTF-8"?>
<visiteur>
<nom><?php echo $resultat["VIS_NOM"]?></nom>
<prenom><?php echo $resultat["Vis_PRENOM"]?></prenom>
<adresse><?php echo $resultat["VIS_ADRESSE"]?></adresse>
<codepostal><?php echo $resultat["VIS_CP"]?></codepostal>
<ville><?php echo $resultat["VIS_VILLE"]?></ville>
<secteur><?php echo $resultat["SEC_CODE"]?></secteur>
</visiteur>

function creerConnexion (){
var xhr;
try{
xhr = new ActiveXObject("Microsoft.XMLHTTP"); 
}
catch (e){
xhr = new XMLHttpRequest();
}
return xhr;
}
//adresse du serveur ou localhost pour test
function creerRequete(fichierACharger, infosAEnvoyer, cible){
alert("hello");
var xhr = creerConnexion();
xhr.onreadystatechange  = function(){ 
if (xhr.readyState  == 4){
if (xhr.status  == 200){
switch(cible){
case "praticien":
afficherInfoPraticien(xhr);
break;
case "medicament":
afficherInfoMediacement(xhr);
break;
case "visiteur":
afficherInfoVisiteur(xhr);
break;
default:
alert("erreur dans le ciblage de la fonction d'affichage des informations.");
}
//alert(xhr.responseText);
} else{
alert (xhr.status);
}
}
}; 
xhr.open("POST", fichierACharger, true); 
xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
xhr.overrideMimeType("application/xml");
//alert(infosAEnvoyer);
xhr.send(infosAEnvoyer);
}
function afficherInfoVisiteur(xhr){

alert (xhr.status);
alert(xhr.responseText);
alert(document.getElementsByTagName("adresse").length);
var nom=xhr.reponseXML.getElementsByTagName("nom")[0].innerHTML;
var prenom=xhr.reponseXML.getElementsByTagName("prenom")[0].innerHTML;
var adresse=xhr.reponseXML.getElementsByTagName("adresse")[0].innerHTML;
var cp=xhr.reponseXML.getElementsByTagName("codepostal")[0].innerHTML;
var secteur=xhr.reponseXML.getElementsByTagName("secteur")[0].innerHTML;

document.getElementById("nom").value=nom;
document.getElementById("prenom").value=prenom;
document.getElementById("adresse").value=adresse;
document.getElementById("cp").value=cp;
document.getElementById("codesecteur").value=secteur;
alert("ok");

}
<select name="nomVisiteur" onchange="alert(this.value);creerRequete('getInfoVisiteur.php','nomvisiteur='+this.value ,'visiteur');">
<?php

// Loop through the query results, outputing the options one by one
while ($row = $nom->fetch(PDO::FETCH_ASSOC)) {
echo "<option value='" . $row['VIS_NOM'] ."'>" . $row['VIS_NOM'] ."</option>";
}
echo '</select>';// Close your drop down box


//var_dump(getnumdudepartement($_POST['Departement']));
?>
<label class="titre">NOM :</label><input type="text" size="25"  id="nom" class="zone" />
<label class="titre">PRENOM :</label><input type="text" size="50" id="prenom" class="zone" />
<label class="titre">ADRESSE :</label><input type="text" size="50"  id="adresse"  class="zone" />
<label class="titre">CP :</label><input type="text" size="5" id="cp" class="zone" />
<label class="titre">VILLE :</label><input type="text" size="30"  id="ville" class="zone" />
<label class="titre">SECTEUR :</label><input type="text" size="1" id="codesecteur"  class="zone" />
<label class="titre">&nbsp;</label><input class="zone"type="button" value="<"></input><input class="zone"type="button" value=">"></input>

xhr.reponseXML.getElementsByTagName("nom")[0].innerHTML

你可能想修复它。一条线索是它应该是"response"而不是"repense"。

最新更新