Php mit Ajax aufrufen
PHP
- php
0 Der Martin0 PHP0 Der Martin0 dedlfix
Hallo,
ich will per Ajax ein Request mit "GET" senden. Allerdings soll eine bestimmte
Funktion in einer PHP-Datei aufgerufen werden.
Mein Ansatz schaut in JavaScript so aus:
request.open("GET", "datei.php?fn=funktion1('Hallo')", true);
request.send();
Aber irgendwie wird die Funktion nicht aufgerufen.
Für Antworten, danke im voraus.
Hi,
ich will per Ajax ein Request mit "GET" senden. Allerdings soll eine bestimmte Funktion in einer PHP-Datei aufgerufen werden.
Mein Ansatz schaut in JavaScript so aus:request.open("GET", "datei.php?fn=funktion1('Hallo')", true);
request.send();Aber irgendwie wird die Funktion nicht aufgerufen.
wie sieht das PHP-Script dazu aus? Was hast du bisher versucht, um den Fehler einzugrenzen?
Ich habe allerdings das dumpfe Gefühl, du erwartest etwas Unmögliches. So wie du es anstellst, wird lediglich das Script datei.php aufgerufen, und bekommt einen URL-Parameter mit dem Namen fn und dem Wert "funktion1('Hallo')" übergeben. Wobei die Klammern und Anführungszeichen im Query-String eigentlich URL-codiert sein sollten.
Aber die weitere Auswertung des Parameters und den Aufruf der gewünschten Funktion innerhalb des Scripts muss das Script selbst erledigen. Tut es das?
Ciao,
Martin
JavaScript:
request.open("GET", "datei.php?fn=funktion1('Hallo')", true);
request.send();
php datei:
function funktion1($wort){#
mysql_query("INSERT INTO tabelle(wörter) VALUES('$wort')");
}
Das habe ich zum Testen gemacht, mit dem einfügen eines Wertes in eine Datenbank, um zu sehen, ob er überhaupt in die Funktion reingeht.
Leider nein.
Geht es überhaupt mit Ajax eine PHP-Funktion aufzurufen?
Hallo,
function funktion1($wort){#
mysql_query("INSERT INTO tabelle(wörter) VALUES('$wort')");
}
das ist in mehrfacher Hinsicht zum Scheitern verurteilt.
Das habe ich zum Testen gemacht, mit dem einfügen eines Wertes in eine Datenbank, um zu sehen, ob er überhaupt in die Funktion reingeht.
Wen meinst du mit "er"?
Geht es überhaupt mit Ajax eine PHP-Funktion aufzurufen?
Nein, natürlich nicht. Wie ich im vorigen Posting schon schrieb, kannst du mit einem HTTP-Request nur das Script an sich ausführen. Das definiert in deinem Fall eine Funktion, ruft sie aber nirgends auf.
Die Logik, den URL-Parameter auszuwerten, ggf. auf Fehler zu reagieren und schließlich eine Funktion innerhalb des Scripts eine Funktion aufzurufen, muss auch innerhalb dieses Scripts realisiert werden.
Aber selbst dann ist dein Schnipsel noch unvollständig: Du willst ein SQL-Query absetzen, ohne überhaupt eine Verbindung zum DBMS aufzubauen und eine DB auszuwählen? Das geht nicht. Woher soll mySQL wissen, wo du mit dem Query hin willst?
Ciao,
Martin
Tach!
Aber selbst dann ist dein Schnipsel noch unvollständig: Du willst ein SQL-Query absetzen, ohne überhaupt eine Verbindung zum DBMS aufzubauen und eine DB auszuwählen? Das geht nicht. Woher soll mySQL wissen, wo du mit dem Query hin willst?
Unvollständig "nur" wegen des nicht beachteten Kontextwechsels und der anzusprechenden Datenbank, aber den Connect kann PHP selbständig herstellen. Die Serverdaten dazu kann es aus den Konfigurationswerten kennen.
dedlfix.
Hallo,
aber den Connect kann PHP selbständig herstellen. Die Serverdaten dazu kann es aus den Konfigurationswerten kennen.
oh, danke - das wusste ich auch noch nicht.
Trotzdem würde ich es vorziehen, diese Schritte explizit durch das Script zu machen, anstatt sich auf die Konfiguration zu verlassen.
Ciao,
Martin