Select dinamica con option prelevati da un file xml

  • Creatore Discussione Creatore Discussione c02y
  • Data di inizio Data di inizio

c02y

Utente Attivo
30 Nov 2012
30
0
0
Salve ragazzi. Mi sto scervellando da qualche ora, ma non riesco a venirne a capo. Ho un file xml da quale estrarre dei nomi che andranno a popolare una select tramite ajax.

Nella select non compaiono i nomi ma al loro posto tanti [object element].

Non capisco dove sia il problema..

HTML:
<body onload=addVini()>

<h2>Lista vini:</h2>

<div id="myDiv"></div>

	<select id=vini>
	</select>

 
</body>

questa è la funzione:
Codice:
function addVini()
{
var xmlhttp;
var txt,x,i;
if (window.XMLHttpRequest)
  {// code for IE7+, Firefox, Chrome, Opera, Safari
  xmlhttp=new XMLHttpRequest();
  }
else
  {// code for IE6, IE5
  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
xmlhttp.onreadystatechange=function()
  {
  if (xmlhttp.readyState==4 && xmlhttp.status==200)
    {
    xmlDoc=xmlhttp.responseXML;
    txt="";
    x=xmlDoc.getElementsByTagName("nome");
    for (i=0;i<x.length;i++)
      {
		option=new Option(x[i]);
		document.getElementById("vini").appendChild(option);
	 // txt=txt + x[i].childNodes[0].nodeValue + "<br>";
      }
    //document.getElementById("myDiv").innerHTML=txt;
    }
  }
xmlhttp.open("GET","vini_catalog.xml",true);
xmlhttp.send();
}

C'è del codice in alcuni commenti, perché avevo provato a far stampare i nomi in un div, per vedere se il problema era da qualche altra parte.
 
Ciao, probabilmente hai già risolto
posto comunque una soluzione
Codice:
function addVini()
            {
                var xmlhttp;
                var txt,x,i;
                if (window.XMLHttpRequest)
                {// code for IE7+, Firefox, Chrome, Opera, Safari
                    xmlhttp=new XMLHttpRequest();
                }
                else
                {// code for IE6, IE5
                    xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
                }
                xmlhttp.onreadystatechange=function()
                {
                    if (xmlhttp.readyState==4 && xmlhttp.status==200)
                    {
                        xmlDoc = xmlhttp.responseXML; 
                        v = xmlDoc.getElementsByTagName("nome");
                        for (i=0;i<v.length;i++)
                        {
                            y = v[i].childNodes[0];
                            option = new Option(y.nodeValue);
                            document.getElementById("vini").appendChild(option);
                            // txt=txt + x[i].childNodes[0].nodeValue + "<br>";
                        }
                        //document.getElementById("myDiv").innerHTML=txt;
                    }
                }
                xmlhttp.open("GET","vini_catalog.xml",true);
                xmlhttp.send();
            }
 

Discussioni simili