basementmedia
New member
Hallo zusammen,
nach stundenlanger Fehlersuche und google-Vergewaltigung bin ich mit meinem Latein oder in diesem Fall mit meinem Javascript am Ende.
Ich will einen SQL-Query per Ajax an ein PHP-Skript senden (bitte nicht schreiben "Warum erzeugts du den Query nicht direkt im PHP-Skript...dies hat in meinem Falle einen ganz bestimmten Grund). Das PHP Skript soll den Query dann ausführen und fertig!
Anscheinend erreicht mein AJAX Request nie den ReadyState=4 denn die entsprechende Alert Box wird nicht ausgegeben.
Vorhin hatte ich mal zwischen jedem Teilschritt ne Alert-Box drin, da hat es komischerweise funktioniert, d.h. das PHP Skript ist schon mal korrekt. Und selbst wenn es zu einem Fehler kommen sollte, müsste doch trotzdem der ReadyState erreicht und die entsprechende Alert Box ausgegeben werden!
Hier die Codes:
Javascript-Part
Hier der PHP Code der Edit.php
Bin für jeden Tipp dankbar.
Viele Grüße
Daniel
EDIT: Hab gerade nochmal was geändert.
Der Funktion interpretRequest() übergeb ich nun noch den Parameter "request".
Nun geht das Skript ABER NUR wenn ich die Alert Box alert ("Request State:" + request.readyState); drin lasse! Wenn ich die auskommentiere gehts nicht !??
Hat jemand ne Ahnung?
nach stundenlanger Fehlersuche und google-Vergewaltigung bin ich mit meinem Latein oder in diesem Fall mit meinem Javascript am Ende.
Ich will einen SQL-Query per Ajax an ein PHP-Skript senden (bitte nicht schreiben "Warum erzeugts du den Query nicht direkt im PHP-Skript...dies hat in meinem Falle einen ganz bestimmten Grund). Das PHP Skript soll den Query dann ausführen und fertig!
Anscheinend erreicht mein AJAX Request nie den ReadyState=4 denn die entsprechende Alert Box wird nicht ausgegeben.
Vorhin hatte ich mal zwischen jedem Teilschritt ne Alert-Box drin, da hat es komischerweise funktioniert, d.h. das PHP Skript ist schon mal korrekt. Und selbst wenn es zu einem Fehler kommen sollte, müsste doch trotzdem der ReadyState erreicht und die entsprechende Alert Box ausgegeben werden!
Hier die Codes:
Javascript-Part
Code:
//SQL Query definieren
sqlquery="INSERT INTO user (username, name) VALUES ('test1', 'test2')";
// 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) {}
}
}
// Wenn das Objekt erfolgreich erzeugt wurde
if (request) {
alert ("Request wurde erzeugt!"); // Diese Alert Box wird geöffnet! D.h. der Request is ok
var url = "edit.php";
var params = "sqlquery="+addslashes(sqlquery);
request.open("POST", url, true);
//Headerinformationen für den POST Request
request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
request.setRequestHeader("Content-length", params.length);
request.send(params);
request.onreadystatechange = interpretRequest;
} else {
alert ("Es konnte kein Request erzeugt werden!");
}
// Request auswerten
function interpretRequest() {
alert ("Request State:" + request.readyState);
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("Der Request wurde abgeschlossen, ist aber nicht OK\nFehler:"+request.status);
} else {
alert ("Der neue Datensatz wurde angelegt!");
}
break;
default:
break;
}
}
function addslashes(string) {
return string.replace(/\\/g, '\\').
replace(/\u0008/g, '\\b').
replace(/\t/g, '\\t').
replace(/\n/g, '\\n').
replace(/\f/g, '\\f').
replace(/\r/g, '\\r').
replace(/'/g, '\'').
replace(/"/g, '\\"');
}
Hier der PHP Code der Edit.php
PHP:
// Datenbankverbindung
include("inc/connect.inc.php");
$query=stripslashes($_POST["sqlquery"]);
@mysql_query($query) or die (mysql_error());
echo $query;
Bin für jeden Tipp dankbar.
Viele Grüße
Daniel
EDIT: Hab gerade nochmal was geändert.
Der Funktion interpretRequest() übergeb ich nun noch den Parameter "request".
Nun geht das Skript ABER NUR wenn ich die Alert Box alert ("Request State:" + request.readyState); drin lasse! Wenn ich die auskommentiere gehts nicht !??
Hat jemand ne Ahnung?
Zuletzt bearbeitet: