Wie kann ich beim Button-Click Daten aus einer Datenbank entnehmen ohne, das eine Seite neu geladen wird (PHP, jQuery)?

2 Antworten

Du lauschst mit JavaScript nach dem Click auf den Button. Wenn jemand den Button anklickt führst du eine JavaScript Funktion aus, die eine Anfrage an eine PHP-Seite stellt. Die PHP-Seite fragt die Daten der Datenbank ab und liefert das Ergebnis per AJAX an die JavaScript Funktion zurück. Die Funktion verarbeitet die Ergebnisse dan weiter und sorgt für die Ausgabe auf der Webseite als z.B. Pop-up.


dodoG0097 
Fragesteller
 26.03.2018, 16:28

Dann müsste ja folgendes Skript funktionieren oder?

$(document).on('click', '.update', function() {
     $('#image_id').val($(this).attr("id"));
     var id = $('#image_id').val();
     $.ajax({
       url:"action.php",
       method:"POST",
       data: {action: 'updateWindow', id: id},
       success:function(data) {
            console.log(data);
       }
     });
  });

action.php

if ($_POST['action']) {
    echo "funktioniert";
}
  1. Wenn der Button gedrückt wird, wird schonmal zu 100% der Code innerhalb der "on"-Funktion ausgeführt.
  2. Es wird aber in der Browserkonsole nix ausgegen.

Habe ich etwas falsch gemacht? :)

0

Natürlich ist das möglich, du erstellst z.B. einfach eine PHP Datei, die deine SQL Abfrage durchführt und das gewünschte Ergebnis zurückgibt, dann schickst du die ID nach dem Klick auf den Button via Ajax Request an diese Datei, liest das Ergebnis aus und verarbeitest es entsprechend.


dodoG0097 
Fragesteller
 26.03.2018, 16:29

Dann müsste ja folgendes Skript funktionieren oder?

$(document).on('click', '.update', function() {
     $('#image_id').val($(this).attr("id"));
     var id = $('#image_id').val();
     $.ajax({
       url:"action.php",
       method:"POST",
       data: {action: 'updateWindow', id: id},
       success:function(data) {
            console.log(data);
       }
     });
  });

action.php

if ($_POST['action']) {
    echo "funktioniert";
}
  1. Wenn der Button gedrückt wird, wird schonmal zu 100% der Code innerhalb der "on"-Funktion ausgeführt.
  2. Es wird aber in der Browserkonsole nix ausgegen.

Habe ich etwas falsch gemacht? :)

1
mastema666  26.03.2018, 16:46
@dodoG0097

Hmm, sieht auf den ersten Blick ok aus, versuch vielleicht mal auch einen möglichen Fehler bei dem Request abzufangen, sollte so in etwa funktionieren:

$.ajax({
       url:"action.php",
       method:"POST",
       data: {action: 'updateWindow', id: id},
       success:function(data) {
            console.log(data);
       },
       error: function (xhr, ajaxOptions, thrownError) {
        alert(xhr.responseText);
        alert(thrownError);
      }

     });

Denn success scheint ja gar nicht ausgeführt zu werden.

0