king.ralph
New member
Hallo zusammen,
vorweg ich bin blutiger Anfänger und beschäftige mich erst wenige Wochen mit JS PHP SQL usw.
Ich wollte so eine Art Warenkorb schreiben und habe folgenden Ansatz:
Die ausgewählten Waren werden in einem JS Array gespeichert. Wenn man den Warenkorb öffnet lade ich mittels Ajax eine Tabelle in der ich dann von JS das Array eintrage.
Die Daten werden jedoch nicht in die Tabelle eingetragen es sei denn ich setze ein "alert();" vor die for/next Schleife. Ich vermute es liegt daran, dass die Tabelle (bzw die Form) noch nicht geladen ist wenn die JS Funktion versucht das Array in die Form zu schreiben, also dass die Form nicht gefunden wird.
Wie kann ich warten bis die mit Ajax geladene Seite tatsächlich geladen ist so dass die id bzw die Form gefunden wird.
Oder hab ich da einen Denkfehler im gesammten Konstrukt.
Hoffe das war jetzt nicht zu wirr. Wie gesagt bin was diese Sprachen angehnt noch Anfänger.
Hier der Ajax Code (den habe ich 1 zu 1 aus einem Tut übernommen)
Das ist der Button der erst die Tabelle lädt und dann die Funktion startet, welche das Array schreibt
Das ist die Funktion welche das Array in die Tabelle schreibt ( Warenkorb ist Globale Variable)
vorweg ich bin blutiger Anfänger und beschäftige mich erst wenige Wochen mit JS PHP SQL usw.
Ich wollte so eine Art Warenkorb schreiben und habe folgenden Ansatz:
Die ausgewählten Waren werden in einem JS Array gespeichert. Wenn man den Warenkorb öffnet lade ich mittels Ajax eine Tabelle in der ich dann von JS das Array eintrage.
Die Daten werden jedoch nicht in die Tabelle eingetragen es sei denn ich setze ein "alert();" vor die for/next Schleife. Ich vermute es liegt daran, dass die Tabelle (bzw die Form) noch nicht geladen ist wenn die JS Funktion versucht das Array in die Form zu schreiben, also dass die Form nicht gefunden wird.
Wie kann ich warten bis die mit Ajax geladene Seite tatsächlich geladen ist so dass die id bzw die Form gefunden wird.
Oder hab ich da einen Denkfehler im gesammten Konstrukt.
Hoffe das war jetzt nicht zu wirr. Wie gesagt bin was diese Sprachen angehnt noch Anfänger.
Hier der Ajax Code (den habe ich 1 zu 1 aus einem Tut übernommen)
Code:
function setRequest(url) {
// Request erzeugen
if (window.XMLHttpRequest) {
request = new XMLHttpRequest(); // Mozilla, Safari, Opera
} else if (window.ActiveXObject) {
try {
request = new ActiveXObject('Msxml2.XMLHTTP'); // IE 5
} catch (e) {
try {
request = new ActiveXObject('Microsoft.XMLHTTP'); // IE 6
} catch (e) {}
}
}
// überprüfen, ob Request erzeugt wurde
if (!request) {
alert("ERROR PLEASE TRY AGAIN LATER");
return false;
} else {
// Request öffnen
request.open('get', url);
// Request auswerten
request.onreadystatechange = interpretRequest;
// Request senden
request.send(null);
}
}
// Request auswerten
function interpretRequest() {
switch (request.readyState) {
// wenn der readyState 4 und der request.status 200 ist, dann ist alles korrekt gelaufen
case 4:
if (request.status != 200) {
alert("ERROR PLEASE TRY AGAIN LATER");
} else {
var content = request.responseText;
// den Inhalt des Requests in das <div> schreiben
document.getElementById('Angebotstabelle').innerHTML = content;
}
break;
default:
break;
}
}
Das ist der Button der erst die Tabelle lädt und dann die Funktion startet, welche das Array schreibt
HTML:
<td align="center" valign="top" bgcolor="#F7F7F7" id="Chart"><input type="button" name="button" id="MakeOfferButton" onClick="setRequest('Tabelle.php'); _set_uget();" value="Zum Warenkorb"></td>
Das ist die Funktion welche das Array in die Tabelle schreibt ( Warenkorb ist Globale Variable)
Code:
function _set_uget()
{
for (var i = 0; i < Warenkorb.length; i++) {
document.getElementById("yougetlist").innerHTML = '<table width="480" height="30" id="GG'+Warenkorb[i][0]+'" border="1"><tr><th width="56" height="20" scope="col"><input name="textfield" type="text" id="GGI'+Warenkorb[i][0]+'" value="'+Warenkorb[i][1]+'" size="8"></th><th width="9" align="center" scope="col">/</th><th width="40" align="center" scope="col">'+Warenkorb[i][2]+'</th><th width="10" align="left" scope="col">x</th><th width="334" align="left" scope="col">'+Warenkorb[i][3]+'</th><th width="38" onclick="" bgcolor="#0F1AE9" style="color: rgba(244,244,244,1); font-style: italic;" align="center" scope="col">-</th></tr><tr><td height="4" colspan="6"></td></tr></table>'+document.getElementById("yougetlist").innerHTML;
}
}
Zuletzt bearbeitet: