Eventhandler in php, oder ausweichfunktionen
Derpater
- php
Guten Abend,
ich bau gerade meine eigene Homepage auf, läuft alles ganz gut, die Hauptfunktionen klappen schon wunderbar, aber ich hätte da eine Frage:
$sql1="SELECT * FROM tagebuch ORDER BY id DESC LIMIT 0,30";
$result=mysql_query($sql1);
$zeilen=mysql_num_rows($result);
echo "<p> Anzahl der Einträge: $zeilen</p>\n";
while ($row = mysql_fetch_array($result, MYSQL_BOTH)) { //while-Anfang
printf (" <br /><div style='border-left-style:solid;
border-top-style:solid;
border-left-width:2px;
border-left-color:black;
width:500px;'><h3>$row[2]</h3>
<small>$row[1] , $row[3] <br /></small><br />
<p>" . nl2br($row[4]) . "</p></div><br />
<a href=index.php name='Kommentar'>Kommentieren: </a><br /><br /
<br /><br />");
}
Mit diesem Script rufe ich meine geschriebenen Einträge auf und setze diese in eine Tabelle, funktioniert alles perfekt. Aber jetzt möchte ich den Link(index.php) so verknüpfen, dass wenn er angeklickt wird, dann darunter ein Formular auftaucht, mit dem der Surfer dann meinen Beitrag kommentieren kann. Javascript hab ich schon ausprobiert, kann sein dass ich da einen Felher gemacht habe, aber eigentlich funkt ein Eventhandler in einer php-funktion nicht, oder gibt es da irgendeinen Trick? Oder gibt es eine vergleichbare php-funktion?
Wenn ich mich zu unklar ausgedrückt habe, hier dass ganze mal vereinfacht:
bei klick auf den Link= Kommentarfelder öffnen
Ddanke schon im voraus für die Hilfe
Hi,
Javascript hab ich schon ausprobiert, kann sein dass ich da einen Felher gemacht habe, aber eigentlich funkt ein Eventhandler in einer php-funktion nicht, oder gibt es da irgendeinen Trick? Oder gibt es eine vergleichbare php-funktion?
nicht hundertprozentig korrekt, aber für den Moment ausreichend:
In dem Moment, in dem der Browser das HTML-Dokument erhält, ist das PHP-Script gestorben, der Server hat sich abgeschaltet, und Dein Hoster ist pleite gegangen. Erst wenn wieder irgend jemand oder irgend etwas Deinen Server anspricht, startet dieser neu und der Hoster erhält eine wundersame Finanzspritze. Das einzige, was unweigerlich gestorben bleibt, ist das PHP-Script - statt dessen wird ein neues mit dem selben Code geboren.
bei klick auf den Link= Kommentarfelder öffnen
Bei Klick auf den Link = absolut neuer Programmablauf, ohne jedweden Zusammenhang zu irgend einem anderen Programmablauf, der vielleicht einmal stattgefunden haben mag.
Cheatah
nicht hundertprozentig korrekt, aber für den Moment ausreichend:
In dem Moment, in dem der Browser das HTML-Dokument erhält, ist das PHP-Script gestorben, der Server hat sich abgeschaltet, und Dein Hoster ist pleite gegangen. Erst wenn wieder irgend jemand oder irgend etwas Deinen Server anspricht, startet dieser neu und der Hoster erhält eine wundersame Finanzspritze. Das einzige, was unweigerlich gestorben bleibt, ist das PHP-Script - statt dessen wird ein neues mit dem selben Code geboren.
meinst du damit, ich soll mit einer if-abfrage entscheiden, ob der link angeklickt wurde? hab ich schon probiert, funktioniert (bei mir) jedenfalls nicht, vielleicht könntest du mal bitte ein beispiel posten^^
bei klick auf den Link= Kommentarfelder öffnen
Bei Klick auf den Link = absolut neuer Programmablauf, ohne jedweden Zusammenhang zu irgend einem anderen Programmablauf, der vielleicht einmal stattgefunden haben mag.
die seite bleibt ja die gleiche, es soll nur unter meinen Beitrag, wenn jmd auf den Link klickt zwei kommentarfelder angezeigt werden, die wiederrum abgeschicht werden können. Hab ich auch schon alles, funktioniert alles, nur der "dynamische" Link geht nicht.
Derpater
Hi,
meinst du damit, ich soll mit einer if-abfrage entscheiden, ob der link angeklickt wurde? hab ich schon probiert,
wie lautete denn Deine Abfrage?
Bei Klick auf den Link = absolut neuer Programmablauf, ohne jedweden Zusammenhang zu irgend einem anderen Programmablauf, der vielleicht einmal stattgefunden haben mag.
die seite bleibt ja die gleiche,
Das ist vollkommen irrelevant. Wenn Du PHP wieder ins Spiel bringen willst, nachdem Du die Seite ausgeliefert gehabt hattest[1], muss der Client einen neuen Request absetzen, der nichts mit irgendwas Vorherigem zu tun hat, und der Server wird ein neues PHP-Script ausführen, das nichts mit irgendwas Vorherigem zu tun hat.
Cheatah
[1] Hattest hattest hattest gehabt hattest. Past Plusquamperfekt Ultimativum Maximum.
Hello,
<a href="index.php?do=Kommentar&id=123">Kommentieren: </a><br />
Sowas müsste ungefähr dabei herauskommen.
In der index.php kannst Du dann fragen:
if (isset($_GET['do']))
{
if ($_GET['do'] = 'Kemmentar')
{
if (isset($_GET['id']))
{
$id = intval($_GET['id']);
if (($id > 0) and ($id < $maxid))
{
$_out['body'] = kommentarfunktion($id);
}
}
}
}
anstelle von "if (($id > 0) and ($id < $maxid))" kann man besser beim Ausliefern der Datensätze an den Client die IDs in die Session eintragen und beim Request dann fragen, ob sie (noch) im entsprechenden Array enthalten sind. Dadurch kann ein Client nur die ihm eben zur Verfügung gestellten Datensätze verändern.
Noch besser ist es selbstverständlich, dieses Recht direkt in der Datenbank zu prüfen, weil es auch während der Session (durch den Admin) verändert wrden kann.
Ein harzliches Glückauf
Tom vom Berg
Hello,
<a href="index.php?do=Kommentar&id=123">Kommentieren: </a><br />
Sowas müsste ungefähr dabei herauskommen.
In der index.php kannst Du dann fragen:
if (isset($_GET['do']))
{
if ($_GET['do'] = 'Kemmentar')
{
if (isset($_GET['id']))
{
$id = intval($_GET['id']);
if (($id > 0) and ($id < $maxid))
{
$_out['body'] = kommentarfunktion($id);
}}
}
}
anstelle von "if (($id > 0) and ($id < $maxid))" kann man besser beim Ausliefern der Datensätze an den Client die IDs in die Session eintragen und beim Request dann fragen, ob sie (noch) im entsprechenden Array enthalten sind. Dadurch kann ein Client nur die ihm eben zur Verfügung gestellten Datensätze verändern.
Noch besser ist es selbstverständlich, dieses Recht direkt in der Datenbank zu prüfen, weil es auch während der Session (durch den Admin) verändert wrden kann.
Ich versteh was du meinst, mtim Darstellen der kommentartabelle, deim eintragen der Daten (mitsamt Beitrags id usw) klappt auch perfekt, meine einzige Frage ist, ob es sowas wie "onclick" bei javascript (bei klick passiert das und das) auch für php gibt, weil in php-codes kann man kein javascript verwenden, soweit ich weiß. Und ich will ja die kommentarfunktion für jeden Beitrag der while-schleife, ansonsten würde ich es ja auch hinkriegen^^ hoffe hir da draußen wisst, was ich meine^^
Derpater
Hello,
<a href="index.php?do=Kommentar&id=123">Kommentieren: </a><br />
Da oben steht Deine Ausgabe für den Datensatz mit der ID 123
Ich versteh was du meinst, mtim Darstellen der kommentartabelle, deim eintragen der Daten (mitsamt Beitrags id usw) klappt auch perfekt, meine einzige Frage ist, ob es sowas wie "onclick" bei javascript (bei klick passiert das und das) auch für php gibt, weil in php-codes kann man kein javascript verwenden, soweit ich weiß. Und ich will ja die kommentarfunktion für jeden Beitrag der while-schleife, ansonsten würde ich es ja auch hinkriegen^^ hoffe hir da draußen wisst, was ich meine^^
Nun sorge mit PHP dafür, dass für den Datensatz Nr. 555
<a href="index.php?do=Kommentar&id=555">Kommentieren: </a><br />
beim Client ankommt.
Alternativ darf ich Dir einen Link auf
http://selfhtml.bitworks.de/forum/get_thread_titles_05.php
senden. Dort wird das gerade nach und nach (nachvollziehbar) entwickelt für einfache Dateien, also nicht für Datenbanken. Das Prinzip ist aber dasselbe.
Entsprechend möchte ich anregen, dann Du nicht "<br />" benutzt für Deine Linkliste, sondern tatsächlich eine Liste aufbaust.
Ein harzliches Glückauf
Tom vom Berg