Derpater: Eventhandler in php, oder ausweichfunktionen

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&auml;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

  1. 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

    --
    X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
    X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
    X-Will-Answer-Email: No
    X-Please-Search-Archive-First: Absolutely Yes
    1. 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

      1. 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.

        --
        X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
        X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
        X-Will-Answer-Email: No
        X-Please-Search-Archive-First: Absolutely Yes
  2. Hello,

    <a href="index.php?do=Kommentar&amp;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

    --
    Nur selber lernen macht schlau
    http://bergpost.annerschbarrich.de
    1. Hello,

      <a href="index.php?do=Kommentar&amp;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

      1. Hello,

        <a href="index.php?do=Kommentar&amp;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&amp;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

        --
        Nur selber lernen macht schlau
        http://bergpost.annerschbarrich.de