Frage zu onclick Event

GottiRhg

Mitglied
Moin,
kann ich bei einem onclick Event ein Javascript und dann eine PHP Funktion ausführen.

Praktisches Beispiel:

Bei Klick auf einen Link wird per Javascript ein Div-Container eingeblendet. Allerdings soll gleichzeitig in einer Datenbank etwas verändert werden.
Habe einen Posteingang. Die Nachricht wird im Div-Container angezeigt. Allerdings soll nach dem Klick auf die Nachricht, die nachricht als gelesen markiert werden.
 
Javascript kann keine PHP-Funktionen aufrufen.
Dazu müsstest du einen HTTP-Request an ein PHP-Skript senden, welches die Änderung in der DB vornimmt.

Das geht entweder über AJAX, oder aber, wenn du keine Rückantwort brauchst, einfacher nach diesem Schema:
Code:
x=new Image();x.src='pfad/zum/skript.php?id_der_nachricht='+4711;
Statt 4711 muss da natürlich dann die ID der Nachricht hin :)
In dem PHP-Skript kannst du dann $_GET['id_der_nachricht'] auslesen und die DB Updaten(du musst dort natürlich sicherstellen, dass es auch eine Nachricht ist, welche dem User gehört )
 
und in der skript.php hau ich einfach die datenbank anweisung rein, oder wie?

er leitet dann den browser aber auch nicht auf die seite weiter, oder?

wie wäre eine lösung mit ajax?
 
und in der skript.php hau ich einfach die datenbank anweisung rein, oder wie?
jo
er leitet dann den browser aber auch nicht auf die seite weiter, oder?
nö, keine Weiterleitung
wie wäre eine lösung mit ajax?

Die würde vom Prinzip her genauso funktionieren...ein PHP-Skript, welches das UPDATE vornimmt, an dieses wird per AJAX ein HTTP-Request gesendet wie bei der 1. Lösung.
Der Unterschied wäre, dass man von dem PHP-Skript ein "Feedback" erhalten könnte, bspw. ob die Nachricht als gelesen markiert wurde oder ein Fehler aufgetreten ist....aber das benötigst du ja nicht.
 
ah okay,
werde es versuchen und bei erfolg auf erledigt setzen und bei nichterfolg nochmal melden ;)

danke schonmal!
 
funktioniert irgendwie noch nicht so ganz...

so habe ich mein onclick definiert:
Code:
onclick="new Effect.BlindDown(\'pn'.$id.'\');x=new Image();x.src=\'action_pn_read.inc.php&pn=' . $id . ';"

Es sollte durch den Klick ein Div Container geöffnet werden und dazu folgendes in der action_pn_read.inc.php ausgeführt werden:

Code:
if(isset($_GET['pn'])){
	$id = $_GET['pn'];
	mysql_query("UPDATE tabelle SET gelesen = 1 WHERE id = $id",$db);
}

Mein Problem:
Er öffnet den Div Container nicht mehr und der Update in der Datenbank wird auch nicht ausgeführt.
 
Da fehlt noch ein Gänsefuss am Ende:
Code:
onclick="new Effect.BlindDown(\'pn'.$id.'\');x=new Image();x.src=\'action_pn_read.inc.php&pn=' . $id . '\';"
 
okay,
daran scheint es aber nicht gelegen zu haben...

der div container geht inzwischen wied er auf, aber die datenbank wird noch nicht geupdatet...
 

Neue Beiträge

Zurück