• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

PHP Array von Javascript durchsuchen lassen

Naja, Du kannst die Einträge manuell mit SQL eintragen, oder Du hast ein Formular dafür oder Du liest die Dateinamen mit PHP (glob()) aus dem Dateisystem aus, oder ... Gibt verschiedene Möglichkeiten.

Achso ja ich habe ein Formular dafür.

So ich habe nun auch alle Änderungen vorgenommen, Code schaut nun so aus:
Code:
(function () {
            var idx = 0;
            $("img.bild").on("click", function () {
                idx = parseInt($(this).data("idx"));
                var relurl = $(this).data("relurl");
                $("#lightbox_overlay img").attr("src", relurl);
                
            $.ajax({
        url: "Version2.php",
        data: {imgurl: relurl},
        type: "POST",
        success: function(output) {
            $("#comments").html(output);
            // Ausgabe von Version2.php steht unter dem Parameter output zur Verfügung
            // in deinem Fall wären das die Kommentare
        },
        error: function( /* Parameter entspr Doku */ ) {
        }
});

Mir ist jetzt jedoch kein Unterschied zu vorher aufgefallen. Also es hat sich leider nichts an der Situation geändert.
Ich habe dann jetzt gerade aber noch mal eben in die Datei Version2.php geschaut und da ist mir was aufgefallen.

Code:
$z= $_GET["delid"];
    
    
try {
    $db = new PDO('mysql:host=localhost;dbname=Datenbank_NEU', 'root', 'lehar456');
    $sql = "SELECT kommentare.userid, kommentare.k_path, kommentare.eintrag, kommentare.autor, kommentare.datum, DATE_FORMAT(datum,'%d.%m.%Y um %H:%i') AS meindatum FROM `kommentare` WHERE kommentare.k_path = '$z'";

Der abgleich mit den Bildpfaden in der Tabelle geschieht durch die Variable $z. Die Variable $z entnimmt den Dateipfad aus der Url. Doch das funktioniert nun nicht mehr durch Lightbox oder ?

Ich frage mich gerade also wie ich $z immer den Dateipfad geben kann, von dem Bild das gerade aktiv ist ?

Bin mir aber nicht sicher ob das wirklich das Problem ist an dem es scheitert :/
 
Werbung:
Okay habe ich geändert aber es will immer noch nicht funktionieren. Das kann dann eiegtnlcih nur bedeuten das der Pfad nicht so übergeben wird, wie er eigentlich in der Datenbank steht oder ?

Der Code nun:
Code:
$z= $_POST["imgurl"];
   
   
try {
    $db = new PDO('mysql:host=localhost;dbname=Datenbank_NEU', 'root', 'lehar456');
    $sql = "SELECT kommentare.userid, kommentare.k_path, kommentare.eintrag, kommentare.autor, kommentare.datum, DATE_FORMAT(datum,'%d.%m.%Y um %H:%i') AS meindatum FROM `kommentare` WHERE kommentare.k_path = '$z'";

Was übersehe ich ? Ist es möglich sich imgurl mal ausgeben zu lassen um zu schauen wie der Pfad darin übergeben wird ?
 
1.Möglichkeit für Javascript: Mit console.log ausgeben lassen:
Code:
            $("img.bild").on("click", function () {
                idx = parseInt($(this).data("idx"));
                var relurl = $(this).data("relurl");
                $("#lightbox_overlay img").attr("src", relurl);
                console.log(relurl);
         
            $.ajax({

Habe ich gemacht, in der console steht dann aber in der selben Zeile in der auch "console.log(relurl);" steht, undefined

.
1. Möglichkeit für PHP: Mit echo oder var_dump ausgeben lassen:
Code:
$z= $_GET["delid"];
 var_dump($Z);

Habe ich auch gemacht, ausgabe ist dann NULL


Als erstes würde ich prüfen, ob der Ajax-Aufruf überhaupt erfolgreich war, d. h. in dem success-Callback eine Ausgabe eintragen:
Code:
        success: function(output) {
            console.log("Success output = " + output);
            $("#comments").html(output);
            // Ausgabe von Version2.php steht unter dem Parameter output zur Verfügung
            // in deinem Fall wären das die Kommentare
        },


Habe ich jetzt auch gemacht und der Callback funktioniert, also es wird angezeigt das success erfolgreich war

Irgendwo scheint irgendwas nicht zu passen...
 
Zuletzt bearbeitet:
Werbung:
also folgendes ist schief gelaufen. Wir haben uns nämlich beide vertan. Wir haben die ganze Zeit in diesen Code geschrieben...
Code:
<img class='profilbild' src='".$test.$row['profilbild']."' data-relurl='".$test.$row['profilbild']."' alt='Bild'>

Dabei ist der Code in den wir eigentlich hätten schreiben müssen dieser hier:

Code:
<img class='bild' data-idx='".$idx."' id='img".$idx."' src='".$test.$row['path']."' data-relurl='".$test.$row['path']."'>

Oder sehe ich das falsch ? Wir haben halt die ganze Zeit in den Code geschrieben der das Profilbild des Users ausgibt...
Hier nochmal der gesamte Code:
Code:
foreach ($pdo->query($sql) as $row) {
    echo "<div class='rahmen'>
        <img class='profilbild' src='".$test.$row['profilbild']."' alt='Bild'><p style='color: black; float: left; margin-left: 37px; position: absolute; font-weight: normal'>".$row['vorname']."</p><div class='dropdowntest'><i class='fa fa-ellipsis-h' aria-hidden='true' style='color: #6E6E6E; float: right; margin-left: 110px; cursor: pointer; margin-top: -10px; position: absolute'></i><div class='dropdowntestcontent'><a href='#' style='font-weight: normal'><p style='color: black'>Dieses Bild melden !</p></a></div></div>
        <ul class='bildermenu2'>
        <li>
        <div class='gallery'>
            <img class='bild' data-idx='".$idx."' id='img".$idx."' src='".$test.$row['path']."' data-relurl='".$test.$row['path']."'>
        </div>
        <div class='aufnahme'>
<div class='effekt'></div>
<div class='aufnahmetext'>
    <i id='i' class='fa fa-star-half-o fa-2x' aria-hidden='true' style='float: left; margin-left: 100px;'></i>
    <a href= Version2.php?delid=".$row['path']."><i id='i' class='fa fa-comment fa-2x' aria-hidden='true' style='float: right; margin-right: 100px;'></i><a/>
</div>
</div>
</li>
</ul>
    </div>";
     $idx++;
}


Nach dem ich das also bemerkt hatte, habe ich das ganze umgeändert und jetzt wird mir im console.log auch der Bildpfad ausgegeben...

bei var_dump($z) ebenfalls.

Es funktioniert aber immer noch nicht da die Pfade wie folgt aussehen:

IPAdresse/PHPversion/upload/bild_user32.png
Dadurch stimmt der Pfad nicht mit dem in der Datenbank überein...
 
Zuletzt bearbeitet:
Achja na klar Du hast recht. Es war der erste Teil aber der wird ja hier nicht benötigt. Es funktioniert jetzt auf jeden Fall schon mal das alle Kommentare die zu einem Bild existieren, ausgelesen werden :D

Der nächste Schritt wäre jetzt, dass wenn ich bspw. auf den rechten oder linken Button klicke mir auch die Kommentare eines anderen Bildes angezeigt werden.

Gerade ist es nämlich noch so das nur die Kommentare von dem Bild ausgelesen werden, dass ich als erstes angeklickt habe. Diese müssen sich ja aber mit wechselndem Bild auch verändern...

Müsste ich dafür dann die Ajax-Funktion auch unter diesen Code schreiben, wobei mir relurl dann Probleme macht oder ?
Code:
$('#left').click(function () {
                prev_img();
            });
            function prev_img() {
                idx--;
                var newsrc = $("#img" + idx).attr("src");
                $('#lightbox_overlay #lightbox_inhalt img').attr('src', newsrc);
            }
            $('#right').click(function () {
                next_img();
            });
            function next_img() {
                idx++;
                var newsrc = $("#img" + idx).attr("src");
                $('#lightbox_overlay #lightbox_inhalt img').attr('src', newsrc);
            }

Oder macht man das dann doch eher anders ?
 
Zuletzt bearbeitet:
Also das ist jetzt wirklich absolutes Neuland für mich :) Ich habe den Ajax-Code jetzt erstmal in eine Funktion geschrieben, sieht so aus:

Code:
function comment() {   $.ajax({
        url: "Version2.php",
        data: {imgurl: relurl},
        type: "POST",
        success: function(output) {
            console.log("Success output = " + output);
            $("#comments").html(output);
            // Ausgabe von Version2.php steht unter dem Parameter output zur Verfügung
            // in deinem Fall wären das die Kommentare
        },
        error: function( /* Parameter entspr Doku */ ) {
        }
})}

Wär das so richtig ?

Als Parameter reicht wahrscheinlich die Variable idx aus, daraus kannst Du dann die ID des Bildes ermitteln und src und data-relurl auslesen.

Und wie genau kann ich das verstehen ? Der Parameter wofür bzw. wo an welche Stelle müsste ich den Parameter eintragen ?
 
Werbung:
Achso ja ich meinte jetzt eigentlich mehr wie man einen Ajax-Code in eine Funktion packt. Bin aber in Javascript ohnehin noch in vielen Punkten unsicher. Also ich habe das ganze dann jetzt mal umgesetzt und das ist der ganze Code (habe die Funktion jetzt auch schon bei next_img eingesetzt)

Code:
(function () {
            var idx = 0;
            $("img.bild").on("click", function () {
                idx = parseInt($(this).data("idx"));
                var relurl = $(this).data("relurl");
                $("#lightbox_overlay img").attr("src", relurl);
                console.log(relurl); //später wieder rausnehmen
               
    function comment(relurl) {
    $.ajax({
        url: "Version2.php",
        data: {imgurl: relurl},
        type: "POST",
        success: function(output) {
            console.log("Success output = " + output);
            $("#comments").html(output);
            // Ausgabe von Version2.php steht unter dem Parameter output zur Verfügung
            // in deinem Fall wären das die Kommentare
        },
        error: function( /* Parameter entspr Doku */ ) {
        }
    })
}
               
           
            });
            $('#left').click(function () {
                prev_img();
            });
            function prev_img() {
                idx--;
                var newsrc = $("#img" + idx).attr("src");
                $('#lightbox_overlay #lightbox_inhalt img').attr('src', newsrc);
                var relurl = $("#img" + idx).data("relurl");
                comment(relurl);
            }
            $('#right').click(function () {
                next_img();
            });
            function next_img() {
                idx++;
                var newsrc = $("#img" + idx).attr("src");
                $('#lightbox_overlay #lightbox_inhalt img').attr('src', newsrc);
                var relurl = $("#img" + idx).data("relurl");
                comment(relurl);
            }
        })();  
   
});

doch leider funktioniert das nicht. Jetzt wird nicht ein Kommentar mehr ausgelesen :/
Kann es sein das die "function comment" an falscher stelle im Code ist ? Eigentlich müsste aber alle passen oder...

EDIT:
In der console steht bei prev- und next_img das er die Variable nicht finden konnte...
ReferenceError: Can't find variable: comment
 
Also jetzt funktioniert das ganze wirklich schon so wie ich mir das auch gewünscht habe. Doch leider ist noch ein Problem aufgetreten. In Version2.php befindet sich ja auch ein Input-Feld mit dem man ein Bild direkt kommentieren kann. Jetzt habe ich das ganze eben mal getestet und der Eintrag wird nicht übernommen und in die Datenbank eingetragen. Hier der Code:

Code:
<?php   
    $y= $_POST["imgurl"];
  
 
    
 if (isset($_SESSION['userid']) &&
     isset($_SESSION['username']) &&
     isset($_POST["Kommentar"]))  {
    
    
     try {
         $bobo = $_POST["Kommentar"];
         $pdo = new PDO('mysql:host=localhost;dbname=Datenbank_NEU', 'root', 'lehar456');
         $statement = $pdo->prepare("INSERT INTO kommentare (id, userid, k_path, eintrag, autor, datum) VALUES (NULL, '$userid', '$y', '$bobo', '$username', CURRENT_TIMESTAMP)");
         $statement->execute();
         echo "Eintrag hinzugef&uuml;gt";
     }   catch (PDOException $e) {
         echo 'Fehler: ' . htmlspecialchars($e->getMessage());
     }
 }   
?>
    
<form method="post">
Kommentar
<textarea cols="70" rows="10" name="Kommentar"></textarea><br/>
<input type="submit" name="Submit" value="Eintragen">
</form>

Bin mir nicht ganz sicher woran das liegt aber kann es sein weil ich zwei mal mit der POST-Methode arbeite oder spielt das keine Rolle ?
Nämlich einmal für $y und für $bobo
 
Also nur damit ich das richtig verstehe. Ich trenne das Script in zwei und in der einen PHP-Datei steht der Code zum auslesen der Kommentare aus der Datenbank, in der anderen der Code zum eintragen in die Datenbank.

Das eintragen in die Datenbank soll ich auch über Ajax realisieren. Doch jetzt frage ich mich folgendes:
Das eintragen funktioniert nicht, weil ich dem Code keine Action angegeben ist. Wenn ich jetzt den Code zum eintragen in die Datenbank aus dem ursprünglichen Script nehme, dann ändert sich nicht viel oder ?

Also was ich sagen will ist das doch dann immer noch die Action fehlt ?

ODER:

Ist das ganze so gemeint das ich in die neue Datei zum eintragen in die Datenbank, ausschließlich den PHP-Code nehme der dafür zuständig ist und das Input-Feld für die Kommentare in der ursprünglichen Datei bleibt ?

Also was mir dabei nicht ganz klar wird ist wie das genau abläuft. Oder "Möglichkeit Nr2" ich gebe in das Input-Feld für die Kommentare als Action-link die neue PHP-Datei an zum eintragen in die Datenbank, doch wo an welcher Stelle nutze ich dann Ajax ?


EDIT: Ich habe jetzt schon mal den Ajax-Code geschrieben bin mir aber nicht sicher ob das so richtig ist. Hab da zwar so ein paar Sachen mal ausprobiert aber es hat leider noch nicht funktioniert. Leider hab ich wie gesagt noch nicht ganz verstanden wie du das mit der Action im Formular :/

Code:
function inside(relurl) {
        $.ajax({
            url: "Version.php",
            data: {imgurl: relurl},
            type: "POST",
            success: function(input) {
                console.log("Success input = " + input); // kann später auch raus
                $("#comments").html(input);
                // Ausgabe von Version2.php steht unter dem Parameter output zur Verfügung
                // in deinem Fall wären das die Kommentare
            },
            error: function( /* Parameter entspr Doku */ ) {}
        })
    }

Im Prinzip ist das der selbe Code wie der erste Ajax-Code, habe da jetzt einfach nur den Namen der Funktion usw. geändert sowie die url (Version.php beinhaltet den PHP-Code zum eintragen in die Datenbank sowie das Input-feld für die Kommentare). Kann man das so machen oder muss das anders umgeändert werden ?
 
Zuletzt bearbeitet:
Werbung:
Okay also verstehe ich das richtig das dieser Code die Datei kommentar-eintragen.php sein soll ?.

Das ist jetzt die PHP-Datei zum eintragen in die Datenbank. Jetzt wird ja in meiner Javascript-Datei über Ajax, der Code/die PHP-Datei zum auslesen der Kommentare benutzt. Jetzt muss ich wahrscheinlich noch einen Ajax-Code in mein Javascript schreiben um auch diesen Code, also kommentar-eintragen.php, ebenfalls mit angezeigt zu bekommen ?

Oder habe ich gerade einen Denkfehler ?
 
Also ich habe jetzt nochmal drüber geschaut und das alles so geändert doch leider funktioniert es nicht :/
Das ist der Code zum auslesen inklusive des Kommentar-Input-Feldes wie du siehst (Kommentar-eintragen.php ist bei mir Version.php)

Code:
<?php
session_start();
$userid = $_SESSION['userid'];
$username = $_SESSION['username'];
?>
<html>
<body> 
  
<?php
 

 $z= $_POST["imgurl"];
 var_dump($z);
  
  
try {
    $db = new PDO('mysql:host=localhost;dbname=Datenbank_NEU', 'root', 'lehar456');
    $sql = "SELECT kommentare.userid, kommentare.k_path, kommentare.eintrag, kommentare.autor, kommentare.datum, DATE_FORMAT(datum,'%d.%m.%Y um %H:%i') AS meindatum FROM `kommentare` WHERE kommentare.k_path = '$z'";
  
    $ergebnis = $db->query($sql);
    foreach ($ergebnis as $zeile) {
        printf("<p><a href=\"mailto:%s\">%s</a> schrieb am %s</p>
          <h3>%s</h3><p>%s</p><hr noshade=\"noshade\" />",
          urlencode($zeile['']), // da stand mal email
          htmlspecialchars($zeile['autor']),
          htmlspecialchars($zeile['meindatum']),
          htmlspecialchars($zeile['']), // hier stand mal userid
          nl2br(htmlspecialchars($zeile['eintrag']))
          );
    }
} catch (PDOException $e) {
  echo 'Fehler: ' . htmlspecialchars($e->getMessage());
}
?> 
  

  
<form method="post">
Kommentar
<textarea data-imgurl="<?php echo $z; ?>" cols="70" rows="10" id="kommentarfeld" name="Kommentar"></textarea><br/>
<input type="button" name="Eintragen" value="Eintragen" onclick="abschicken();">
<script>
    function abschicken() {
       var komm = $("#kommentarfeld").val();
       var imgurl = $("#kommentarfeld").data("imgurl");
       $.ajax({
            url: "Version.php",
            data: {imgurl: imgurl, kommentar: komm},
            type: "POST",
            success: function(input) {
               // hier möglicherweise eine geeignete Meldung an den
               // Benutzer, dass der Kommentar eingetragen wurde
            },
            error: function() {}
      });
    }
</script>
</form>
</body>
</html>

Das hier ist Version.php

Code:
<?php
session_start();
$userid = $_SESSION['userid'];
$username = $_SESSION['username'];
?>
<html>
<body>
   
<?php
    $y= $_POST["imgurl"];
 
 
 
 if (isset($_SESSION['userid']) &&
     isset($_SESSION['username']) &&
     isset($_POST["Kommentar"]))  {
 
 
     try {
         $bobo = $_POST["Kommentar"];
         $pdo = new PDO('mysql:host=localhost;dbname=Datenbank_NEU', 'root', 'lehar456');
         $statement = $pdo->prepare("INSERT INTO kommentare (id, userid, k_path, eintrag, autor, datum) VALUES (NULL, '$userid', '$y', '$bobo', '$username', CURRENT_TIMESTAMP)");
         $statement->execute();
         echo "Eintrag hinzugef&uuml;gt";
     }   catch (PDOException $e) {
         echo 'Fehler: ' . htmlspecialchars($e->getMessage());
     }
 }
?>
 
</body>
</html>

Mir ist da etwas aufgefallen in deinem Code für Kommentar-eintragen.php und zwar hast du anders als ich die Variable $k= $_POST["kommnetar"]; eingebaut. Diese Variable habe ich in dem Code doch aber schon als $bobo drin oder nicht ?

Was in deinem Code dann fehlt wäre doch dann die Variable für imgurl oder nicht ? Bei mir ist das
$y= $_POST["imgurl"];

Ich brauche ja den Bildpfad um ihn mit dem Kommentar in die Datenbank einzutragen.

Oder verstehe ich da etwas falsch ?
Aber wie gesagt, so funktioniert es leider noch nicht. Ich schaue mal weiter nach nem Fehler. Was mir auch noch aufgefallen ist, dass wenn man etwas in das Kommentar-Feld schreibt und daraufhin den Button betätigt das ganze auch ohne Funktion ist.
Also es passiert einfach gar nichts und das eingegebene Wort befindet sich nach wie vor da drin.
 
Absolut kein Problem, der Austausch mit Dir ist an sich schon eine Riesen Hilfe. Ich schaue mal eben was der success-Callback usw. sagen und melde mich dann gleich.
 
Werbung:
Okay also gute Nachrichten :D Ich habe den Fehler gefunden. War wirklich ne Kleinigkeit und leicht zu übersehen, bin da jetzt auch nur mithilfe von var_dump() drauf gekommen und zwar folgendes:

Code:
<script>
    function abschicken() {
       var komm = $("#kommentarfeld").val();
       var imgurl = $("#kommentarfeld").data("imgurl");
       $.ajax({
            url: "Version.php",
            data: {imgurl: imgurl, Kommentar: komm},
            type: "POST",
            success: function(input) {
                console.log("Success input = " + input);
               // hier möglicherweise eine geeignete Meldung an den
               // Benutzer, dass der Kommentar eingetragen wurde
            },
            error: function() {}
      });
    }
</script>

Unter data stand folgendes:
kommentar: komm

In der Variable $bobo in Version.php stand jedoch folgendes:
$bobo = $_POST["Kommentar"];

Das bedeutet also das ich in data einfach nur Kommentar groß schreiben musste und schon funktioniert es. :D
 
Ich werde morgen dann noch weiter ausprobieren und weiter rum basteln und mich dann nochmal zu aktuellen Stand der Dinge melden :)
 
Hey also ich habe mich jetzt die letzten Tage mehr und mehr mit dem Code beschäftigt und hier und da was verändert.

Funktioniert soweit auch alles wie gewollt. Doch es gibt da etwas was mich interessiert. Wir haben ja für den Button eine onclick-Funktion geschaffen da bei einem submit ein Page Reload stattfinden würde. Somit funktioniert es auch nicht das die Daten übergeben werden sobald ich auf Enter drücke.
Im Gegenteil, sobald man auf Enter drückt werden die eingegeben Daten gelöscht.

Doch besteht gar keine Möglichkeit das ganze ohne einen Page-Reload abzuschicken ?

Ich habe mal ein wenig im Web recherchiert und dabei diesen Code gefunden:

Code:
<script>
    $('#form').submit(function(event){
        event.preventDefault();
        $.ajax({
            type: 'GET',
            url: 'insert-data.php',
            date: $(this).serialize(),
            success: function(data){
                $('#output').html(data);
            }
        
        });
        
        $('form')[0].reset();
    
    });
</script>

Im Prinzip wäre es doch hiermit in etwa möglich. So wie ich das verstanden habe wird durch "event.preventDefault();" ein Seitenreload verhindert. Somit könnte es dann doch möglich sein das ein Klick auf Enter die Daten abschickt.

Und mithilfe von "$('form')[0].reset();" resete ich das Formular und der User kriegt das Gefühl das seine Daten abgeschickt worden sind (werden sie ja auch).

Ich konnte das ganze gerade noch nicht testen was aber heute Abend passieren wird. Wollte nur mal deine Meinung zu dem ganzen wissen ob das so funktionieren kann wie ich mir das denke :)
 
Werbung:
Ja also ich möchte den Button eigentlich ganz gerne aus dem Grund weg haben da ich nicht möchte das unnötig mit Absätzen in den Kommentaren gearbeitet wird. Wenn jemand nach jedem zweiten Wort einen Absatz rein haut dann wird das Kommentar in der horizontalen auch dementsprechend lang...

Wenn ein User also viel zu schreiben hat dann kann er den Textbereich auch so lange voll schreiben bis automatisch ein Zeilenumbruch erzeugt wird :)

Das man sich daran erstmal gewöhnen muss ist mir dabei klar :) Mein Problem ist leider das ich nicht weiß wie ich das in die Javascript-Funktion mit einbaue. Denn theoretisch müsste das Script ja erkennen welche Taste gedrückt wurde.

Und dann noch eine Sache....

Ich hatte das mit dem Reset ausprobiert doch leider scheint irgendwas nicht zu passen. Hier der Code:

Code:
<script>
    function abschicken() {
       var komm = $("#kommentarfeld").val();
       var imgurl = $("#kommentarfeld").data("imgurl");
       $.ajax({
            url: "Kommentar_eintragen.php",
            data: {imgurl: imgurl, Kommentar: komm},
            type: "POST",
            success: function(input) {
                console.log("Success input = " + input); // kann später raus   
               // hier möglicherweise eine geeignete Meldung an den
               // Benutzer, dass der Kommentar eingetragen wurde
            },
            error: function() {}
      });
        
    $('#kommentarfeld')[0].reset();
    }
</script>

Was ist das Problem ? :/
 
Vielen Dank für deine Hilfe. Ich werde das ganze gleich ausprobieren. Nur zum Verständnis...Mit den Aktionen zum abschicken des Kommentars ist die Ajax-Funktion gemeint oder?
 
Werbung:
Okay perfekt das funktioniert dann jetzt auch soweit. Nur damit ich das richtig verstehe: Die Zahl 13 in dem Code ist aus dem Grund da, weil die Enter-Taste die 13te Taste ist ? Oder ist das einfach nur ein blöder Zufall :)
 
Also ich hab das Problem mit dem Reset jetzt gelöst bekommen :) Lag einfach nur daran das ich den falschen Namen in der Klammer stehen hatte aber jetzt funktioniert es. Sieht jetzt so aus:

Code:
<script>
$("#kommentarfeld").on("keydown", function (event) {
            var komm = $("#kommentarfeld").val();
            var imgurl = $("#kommentarfeld").data("imgurl");
            var code = (event.keyCode ? event.keyCode : event.which);
            if (code == 13) {
                event.preventDefault();
                console.log("enter pressed");
                // hier die Aktionen zum Abschicken des Kommentars
                $.ajax({
            url: "Kommentar_eintragen.php",
            data: {imgurl: imgurl, Kommentar: komm},
            type: "POST",
            success: function(input) {
                console.log("Success input = " + input); // kann später raus  
               // hier möglicherweise eine geeignete Meldung an den
               // Benutzer, dass der Kommentar eingetragen wurde
            },
            error: function() {}
      });
                $('.formular')[0].reset();
            }
        });  
</script>

Nachdem ich jetzt immer weiter getestet habe ist mir aber noch folgende Schwäche aufgefallen die ich gerne beheben würde und zwar folgendes:
Wenn ich ein Kommentar abgebe dann wird dieses auch in die Datenbank eingetragen und der Textbereich wird zurückgesetzt. Der Eintrag wird jedoch erst dann sichtbar, sobald ich entweder in der Lightbox ein Bild vor und wieder zurück gehe oder ich die Lightbox schließe und erneut öffne.

Ich möchte also ein direktes auslesen der Daten erzielen. Sobald ein Kommentar also abgegeben wurde, soll es direkt ausgelesen und angezeigt werden.

Ich weiß leider nicht wie andere Websiten das umsetzen. Hast du eventuell einen Tipp für mich wie ich an die Sache ran gehen soll ? :)
 
Zurück
Oben