Hallo,
im Moment hänge ich etwas fest ;)
bis jetzt habe ich folgenden Code
<script type="text/javascript">
<!--
/*<![CDATA[*/
function test(){
var xmlRequest = (window.XMLHttpRequest) ? new XMLHttpRequest() : ((window.ActiveXObject) ? new ActiveXObject('Microsoft.XMLHTTP') : false);
var url = 'preis_berechnen.php?' +
'_a=' + document.forms[0]._a.value + '&' +
'_b=' + document.forms[0]._b.value + '&' +
'_c=' + document.forms[0]._c.value + '&' +
'_d=' + document.forms[0]._d.value + '&' +
'_e=' + document.forms[0]._e.value + '&' +
'_f=' + document.forms[0]._f.value;
xmlRequest.open('GET', url, true);
xmlRequest.onreadystatechange = function(){
if(xmlRequest.readyState==4){
if(xmlRequest.status==200){
var xml = xmlRequest.responseXML;
var netto= document.getElementById('netto');
var mwst= document.getElementById('mwst');
var brutto= document.getElementById('brutto');
var aB= document.getElementById('aB');
var bB= document.getElementById('bB');
var cB= document.getElementById('cB');
var dB= document.getElementById('dB');
var eB= document.getElementById('eB');
var fB= document.getElementById('fB');
netto.innerHTML = xml.getElementsByTagName('netto')[0].firstChild.nodeValue;
mwst.innerHTML = xml.getElementsByTagName('mwst')[0].firstChild.nodeValue;
brutto.innerHTML = xml.getElementsByTagName('brutto')[0].firstChild.nodeValue;
aB.innerHTML = xml.getElementsByTagName('a')[0].firstChild.nodeValue;
bB.innerHTML = xml.getElementsByTagName('b')[0].firstChild.nodeValue;
cB.innerHTML = xml.getElementsByTagName('c')[0].firstChild.nodeValue;
dB.innerHTML = xml.getElementsByTagName('d')[0].firstChild.nodeValue;
eB.innerHTML = xml.getElementsByTagName('e')[0].firstChild.nodeValue;
fB.innerHTML = xml.getElementsByTagName('f')[0].firstChild.nodeValue;
}
}
}
xmlRequest.send(null);
}
/*]]>*/
-->
</script>
der HTML-Code sieht in etwa so aus
<!-- [...] -->
<form action="/" method="post">
<fieldset>
<legend>B</legend>
<p>xyx</p>
<p>
<select name="_b" onchange="test()">
<option label="90g (-666,54 €)" value="1">90g (-666,54 €)</option>
<option label="100g" value="2" selected="selected">100g</option>
<option label="135g (+2.335,14 €)" value="3">135g (+2.335,14 €)</option>
<option label="170g (+4.671,78 €)" value="4">170g (+4.671,78 €)</option>
<option label="250g (+10.008,59 €)" value="5">250g (+10.008,59 €)</option>
<option label="300g (+13.345,80 €)" value="6">300g (+13.345,80 €)</option>
</select>
</p>
</fieldset>
<!-- [...] -->
das zurückgegebene XML File sieht im Moment so aus
<?xml version="1.0" encoding="UTF-8"?>
<root>
<preis>
<netto>0,00</netto>
<mwst>0,00</mwst>
<brutto>0,00</brutto>
</preis>
<spezifikationen>
<aB>test2</aB>
<bB>90g</bB>
<cB>DIN A0</cB>
<dB>Farbe 4/0</dB>
<eB>1000 Stück</eB>
<fB>per Post</fB>
</spezifikationen>
</root>
ich müßte jetzt bei den Dropdownlisten die Preisdifferenz ändern, sobald irgendeine Option geändert wurde
kann mir jemand ein Tipp geben, wie
1. das XML File am besten strukturiert werden sollte
2. ich die Listeneinträge dann per JavaScript ändere
zu. 2. müßte ich dazu est einmal alle Listeneinträge löschen, danach hinzufügen und anschließend überall die aktuelle Auswahl ändern, oder gibt es eine bessere Methode?
die Anzahl der Listenelemente bleibt immer gleich, solange "_a", wird der hidden Feld übertragen, die gleiche ID hat, wenn die ID anders ist, können es entweder mehr oder weniger werden
Nach eienr Suche per google habe ich den einfachen XMLHttpRequest hinbekommen, was sogar funktioniert :-)
Suchergebnisse zwecks der Dropdownliste waren leider nicht zufriedenstellend
mfg
Twilo