Ankündigung

Einklappen
Keine Ankündigung bisher.

Updte mit php und Ajax durchführen

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Updte mit php und Ajax durchführen

    Hallo!

    Ich habe eine php Seite wo ich eine Abteilung über einen Button löschen möchte.
    Ich verwende xammp lokal installiert.

    Dazu hier mein Code:
    HTML-Code:
    <?php
    $mysqli = new mysqli("localhost", "root", "", "projekt");
    if ($mysqli->connect_errno) {
        die("Verbindung fehlgeschlagen: " . $mysqli->connect_error);
    }
    ?>
    <html>
    <head>
    <script>
    function del(abtnr)
      {
         alert ("loeschen "+abtnr);
    
        jQuery.ajax({
               type: "POST",
               url: "abt_delete.php",
               data: 'abtnr='+abtnr,
               cache: false,
               success: function(response)
               {
                 //alert("Record successfully updated");
                 document.forms["abteilung"].submit();
               }
             });
    
    
     }
    </script>
    
    </head>
    <body>
    <form name="abteilung" method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>" >
    <table>
    <?php
        $sql = "SELECT * FROM `abt` "; //WHERE id < ?
        //echo "s: $sql";
        $statement = $mysqli->prepare($sql);
        $statement->execute(); //Select ausführen
    
        $result = $statement->get_result(); //Ergebnis in $result speichern
    
        while($row = $result->fetch_object()) {
          echo "<tr><td>".$row->ABTNR."</td><td>".$row->AbtName."</td><td>".$row->AbtLeiter."</td><td><button type='button' id='".$row->ABTNR."' onclick="del(".$row->ABTNR.")" >X</button></td></tr>";
        }
    
    ?>
    </table>
    </form>
    
    
    
    </body>
    Hier meine abt_delete.php
    HTML-Code:
    <?php
    
    $mysqli = new mysqli("localhost", "root", "", "projekt");
    if ($mysqli->connect_errno) {
        die("Verbindung fehlgeschlagen: " . $mysqli->connect_error);
    }    
    $abtnr = 0;
    
    $abtnr = @$_POST['abtnr'];
    
    
    $sql = "delete FROM abt where ABTNR = ?";
    $statement = $mysqli->prepare($sql);
    $statement->bind_param('i', $abtnr);
    $statement->execute();
    
    $result = $statement->get_result();
    
    ?>
    Leider wird aber keine Abteilung damit gelöscht.
    Hoffe es kann mir hier jemand weiterhelfen.


  • #2
    Schau erst mal, ob bei PHP überhaupt das ankommt, was du erwartest.

    Kommentar


    • #3
      Danke für die Antwort.
      Wenn ich abt_delete.php alleine ausführe funktioniert es. Irgendwie liegt der Fehler meiner Meinung nach bei der Übergabe der abtnr.
      Wie kann ich die Variable $abtnr in der Datei abt_delete.php prüfen wenn ich diese über Javascript Ajax aufrufe von einer anderen Datei aufrufe?
      Wenn ich ein echo $abtnr in der Datei abt_delete.php eingebe finde ich diesen Wert im Quellcode nicht.

      Vielen Dank

      Kommentar


      • #4
        Wie kann ich die Variable $abtnr in der Datei abt_delete.php prüfen wenn ich diese über Javascript Ajax aufrufe von einer anderen Datei aufrufe?
        Schreibs ins Error Log. Da ist es egal, wer die Datei aufruft.

        Kommentar


        • #5
          Danke nochmals.
          Sorry die Frage, aber wie kann ich das Error Log aktivieren bzw. dann nachsenen. Habe es leider noch nie verwendet.
          Danke

          Kommentar


          • #6
            Das Error Log ist immer da. Wo genau steht in der php.ini. sh. http://php.net/manual/de/function.error-log.php

            Kommentar


            • #7
              Danke für den Hinweis.
              Ich habe nun folgendes eingetragen:
              error_reporting = E_ALL | E_STRICT;
              log_errors = On;
              display_errors = On;
              error_log = d:\php-errors.log;

              Ich habe xampp neu gestartet bekomme aber keine Datei wenn ich eine Seite mit dem Löschen versuche.

              Kommentar


              • #8
                Darf denn der PHP-User überhaupt in d:\ schreiben?

                Kommentar


                • #9
                  Mit der Taste F12 im Browser kannst du dir die Fehler von Javascript ansehen.

                  Du verwendest Jquery, dies ist eine Bibliothek die du zuerst einbinden musst, davon sehe ich aber nichts, folglich wird nichts übertragen, bzw. aufgerufen und wenn die abt_delete.php nicht aufgerufen wird, kann auch nichts ausgegeben werden und es wird somit auch nichts im Errorlog stehen, weil dies serverseitig geschieht, Javascript aber im Client operiert.

                  Kommentar

                  Lädt...
                  X