Hallo,
mit folgendem Code passiert eine Datenbankabfrage jedesmal, wenn die Maus über ein Thumbnail geführt wird. Es sollen die "technischen Daten" eines Bildes aktualisiert werden.
Die Daten liegen in einer XML Datei auf dem Server.
Das ganze funktioniert auch, allerdings gibt es eine Fehlermeldung, wenn z.B. ein Feld in der XML Datei nicht ausgefüllt ist (z.B. wie hier das Feld "remark").
Es werden dann auch die restlichen Daten nicht aktualisiert, auch wenn sie in der Datei vorhanden sind.
Die Fehlermeldung in der Fehlerkonsole des Browsers lautet:
TypeError: null is not an object (evaluating 'ausgabe.getElementsByTagName("bildtitel")[bildnummer-1].firstChild.nodeValue')
(anonyme Funktion)tiere.php:27:94
firejquery-1.7.1.js:1045
fireWithjquery-1.7.1.js:1163
donejquery-1.7.1.js:7398
callbackjquery-1.7.1.js:8179
Hier der Code der jQuery Abfrage:
<script type="text/javascript">
$(document).ready(function(thumb){
$('.thumbs').mouseover(function(thumbswechseln){
var nummer = $(this);
var bildnummer = nummer.attr('data');
$('#vorschau').attr({src: 'bilder/bambus/bambus' + bildnummer + '.jpg'});
var nummer = $(this);
var bildnummer = nummer.attr('data');
$.post("bilderdatenbanken/bilderdatenbank-bambus.xml", function(ausgabe) {
$("#bildtitel").html(ausgabe.getElementsByTagName("bildtitel")[bildnummer-1].firstChild.nodeValue);
$("#remark").html(ausgabe.getElementsByTagName("remark")[bildnummer-1].firstChild.nodeValue);
$("#lang").html("Länge: " + ausgabe.getElementsByTagName("laenge")[bildnummer-1].firstChild.nodeValue + " cm");
$("#breit").html("Breite: " + ausgabe.getElementsByTagName("breite")[bildnummer-1].firstChild.nodeValue + " cm");
$("#rahmen").html("gerahmt: " + ausgabe.getElementsByTagName("rahmen")[bildnummer-1].firstChild.nodeValue);
$("#preis").html("Verfügbarkeit: " + ausgabe.getElementsByTagName("avail")[bildnummer-1].firstChild.nodeValue);
$("#bildnr").html("Bildnummer: ubk-b-" + ausgabe.getElementsByTagName("bildnr")[bildnummer-1].firstChild.nodeValue);
var angabe = document.getElementById("preis").innerHTML;
if (angabe == "Verfügbarkeit: verkauft")
{
document.getElementById("preis").style.color = "red";
}
else if (angabe !== "Verfügbarkeit: verkauft")
{
document.getElementById("preis").style.color = "black";
}
});
});
});
</script>
Alles anzeigen
Kann mir hier jemand weiterhelfen, wie ich das beheben kann? Wie kann ich dem Programm klarmachen, dass es die Tatsache, dass ein bestimmtes Feld leer ist, ignorieren soll und einfach einen leeren string schreiben soll?
Grüße,
Michael