Mit JQuery/AJAX zum füllen eines Dropdown-Menüs mit XML-Datei.
Ich habe ein drop-down-Menü, das ich Auffüllen müssen aus einer XML-Datei.
Hier ist das Skript, das ich versuche zu verwenden:
$(document).ready(function(){ //load jQuery 1.5
function loadfail(){
alert("Error: Failed to read file!");
}
function parse(document){
$(document).find("menuItem").each(function(){
var optionLabel = $(this).find('text').text();
var optionValue = $(this).find('value').text();
$('.opening').append(
'<option value="'+ optionValue + '">' + optionLabel + '</option>'
);
});
}
$.ajax({
url: 'http://ourwebserver/Online%20App/jobTitles.xml', //name of file with our data - link has been renamed
dataType: 'xml', //type of file we will be reading
success: parse, //name of function to call when done reading file
error: loadfail //name of function to call when failed to read
});
});
Hier ist ein Beispiel aus der xml-Datei:
<menu>
<menuItem>
<value>612</value>
<text>CLERK-CMH HOS HIM</text>
</menuItem>
<menuItem>
<value>1632</value>
<text>FAM PRACT-CMH CLN Southside Medical</text>
</menuItem>
Und hier ist der html-code, enthält die drop-down-versuche ich zu füllen:
<strong>Position(s) Desired</strong>
<select name="opening" size="5" multiple="multiple" id="opening">
</select>
Ich bin nicht immer eine Fehlermeldung, aber ich bin auch nicht immer alle Daten zur Einpflege in das Menü.
Ich habe auch versucht den code/Lösung unter diesem link:
Auffüllen einer drop-down-Menü mit xml-Datei
und hatte ein ähnliches Ergebnis, keine Fehler, aber keine Daten.
Dank im Voraus für Eure Hilfe.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Bist du mit einem class-Selektor (
.opening
) anstatt der ID (#opening
) zu finden, die<select>
element. Mit$('#opening')
in Ihremparse
Funktion sollte funktionieren wie erwartet.Ich denke, du hast den Aufruf der Funktion falsch in Ihrem Erfolgs-callback.
success: parse,
Sollte so etwas wie dieses.
success: function(){parse(data);},
Aber ich könnte falsch sein, da ich nicht viel Erfahrung hier.
Überprüfen, was
document
ist eigentlich gesetzt, um in Ihr analysieren. Es könnte eine Kollision mit der HTML -document
.jQuery docs ist dein bester Freund, http://api.jquery.com/jQuery.ajax/