Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] Datenbankeintrag löschen mit Ajax

Einklappen

Neue Werbung 2019

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

  • [Erledigt] Datenbankeintrag löschen mit Ajax

    Ich wollte auf meiner Webseite per Button klick ein Eintrag von meiner Datenbank gelöscht wird. Jedoch will ich nicht, dass die Seite neu geladen wird.
    Ich hab mir das so vorgestellt.
    Hier ist mein Javascript
    PHP-Code:
    <script language="JavaScript" type="text/javascript">
                var 
    rq;
                function 
    removeImg(i) {
                     if (
    window.XMLHttpRequest) {
                    
    rq = new XMLHttpRequest();
                    }else{
                         
    rq=new ActiveXObject("Microsoft.XMLHTTP");
                    }
                    
    rq.onreadystatechange = function() {
                        if (
    rq.readyState == && rq.status == 200) {
                        
    document.getElementById("deleteOneImgDiv").innerHTML=rq.responseText;
                    }
                    };
                    
    rq.open("post""ajax_imgDeleteAntwort.php?deleteOneImg="+itrue);
                    
    rq.send();
                }

                
            
    </script> 
    Und hier ist die ajax_imgDeleteAntwort.php
    PHP-Code:
       header("Content-Type: text/html; charset=utf-8");
      
    $db = new mysqli("localhost""root""""chor");
      if (!
    $db) {
      die(
    'Could not connect: ' mysqli_error($db));
    }
        
    $sql "DELETE FROM tempimgtable WHERE id='" $_POST["deleteOneImg"] . "'";
        
    $db -> query($sql);
        
    mysqli_close($db); 
    Leider wird es nicht gelöscht.
    Wenn ihr wisst wie das mit dem Löschen geht oder was hier der Fehler ist wäre ich euch sehr dankbar wenn ihr mich darauf hinweisen könntet.

    Lg Flo


  • #2
    Du schickst den Parameter per GET mit.
    Zitat von nikosch
    Macht doch alle was Ihr wollt mit Eurem Billigscheiß. Von mir aus sollen alle Eure Server abrauchen.

    Kommentar


    • #3
      Hmm wenn ichs dann so mache?
      PHP-Code:
      rq.open("post""ajax_imgDeleteAntwort.php, true);
                      rq.send("
      deleteOneImg="+i); 

      Kommentar


      • #4
        Dann hast du 'n Syntaxfehler.
        Zitat von nikosch
        Macht doch alle was Ihr wollt mit Eurem Billigscheiß. Von mir aus sollen alle Eure Server abrauchen.

        Kommentar


        • #5
          Hier gäbe es übrigens fertige Libraries wie jQuery oder AngularJs, die dir die Schreibarbeit abnehmen.
          GitHub.com - ChrisAndChris - RowMapper und QueryBuilder für MySQL-Datenbanken

          Kommentar


          • #6
            Das oben gezeigte Beispiel lässt sich mit jQuery leichter umsetzen. Wenn im Frontend mehr Logik zum Einsatz kommen soll, macht ein WebApp-Framework wie AngularJS oder EmberJS Sinn (im Frontend aber auch auf Kosten der Suchmaschinenlesbarkeit!).
            Standards - Best Practices - AwesomePHP - Guideline für WebApps

            Kommentar


            • #7
              Hmm und wie geht das mit jquery.

              Hab mich dazu noch nicht so befasst, also ajax mit jquery.

              Könnte mir das jemand zeigen?

              Kommentar


              • #8
                Ob es sinnvoll ist Libs zu empfehlen, wenn man nicht nach syntax fehlern suchen will, sei dahingestellt.

                hier ein beispiel mit RESTfull api und Backbone, inclusiver Demo und verlinktem Tutorial.
                https://github.com/ccoenraets/backbone-cellar

                Kommentar


                • #9
                  Die jQuery-Dokumentation ist eine der besten Dokumentationen die ich kenne, mit einigen Beispielen zu jeder Funktion. Wenn du damit nicht zurecht kommst dann weiß ich auch nicht weiter.
                  Zitat von nikosch
                  Macht doch alle was Ihr wollt mit Eurem Billigscheiß. Von mir aus sollen alle Eure Server abrauchen.

                  Kommentar


                  • #10
                    Zitat von moma Beitrag anzeigen
                    Ob es sinnvoll ist Libs zu empfehlen, wenn man nicht nach syntax fehlern suchen will, sei dahingestellt.

                    hier ein beispiel mit RESTfull api und Backbone, inclusiver Demo und verlinktem Tutorial.
                    https://github.com/ccoenraets/backbone-cellar
                    Mir ging es dabei weniger um die Syntaxfehler als darum, dass XML-HTTP-Requests je nach Browser anders initiiert werden und das Handling von Success/Failure nicht ganz so trivial ist.
                    GitHub.com - ChrisAndChris - RowMapper und QueryBuilder für MySQL-Datenbanken

                    Kommentar


                    • #11
                      da hast du sicher recht; ich wollte dir auch nicht zu nahe tretten, hatte ich doch nur sorgen, dass die angular clique jetzt zuwachs bekommen hat
                      deswegen habe ich auch ein beispiel verlinkt an dem man sich das ein oder andere abschauen kann, jedenfalls auch meinem wissesnstand.

                      Kommentar


                      • #12
                        Ich will auch nicht, dass alle nur noch mit Angular arbeiten. Ich fand den Vermerk auf zwei Dinge jedoch einfach schöner .

                        Und zu Nahe trittst du mir damit sicherlich nicht!
                        GitHub.com - ChrisAndChris - RowMapper und QueryBuilder für MySQL-Datenbanken

                        Kommentar


                        • #13
                          Hallöchen,

                          Zitat von moma Beitrag anzeigen
                          hatte ich doch nur sorgen, dass die angular clique jetzt zuwachs bekommen hat
                          Und *wir* hatten die Hoffnung!

                          Zitat von ChristianK Beitrag anzeigen
                          Ich will auch nicht, dass alle nur noch mit Angular arbeiten.
                          *Wir* schon!



                          Viele Grüße,
                          lotti

                          Kommentar


                          • #14
                            Ok habs jetzt mal mit jquery versucht.
                            Und hab jetz auch schon in nem Buch alles über jquery und ajax durchgelesen.

                            Und das sieht so aus.
                            Aufruf:
                            PHP-Code:
                            echo "<a onmouseover='changeCursor(".chr(34)."remove".$i.chr(34).");' onmouseup='removeImg(" $ds['id'] . ");' id='remove" $i "' class='removeButton'>x</a>"
                            Function:
                            PHP-Code:
                            $.post('ajax_imgDelete.php',
                                            {
                            deleteOneImgi},
                                            function(
                            data){
                                                
                            alert(data);
                                            }
                                            ); 
                            imgDelete.php:
                            PHP-Code:
                              header("Content-Type: text/html; charset=utf-8");
                              
                            $db = new mysqli("localhost""root""""chor");
                              if(isset(
                            $_POST["deleteOneImg"])){
                                  echo 
                            $_POST["deleteOneImg"];
                                  
                              }
                                
                            $sql "DELETE FROM tempimgtable WHERE id='" intval($_POST["deleteOneImg"]) . "'";
                                
                            $db -> query($sql);

                                
                            mysqli_close($db); 
                            Er gibt auch bei dem alert nichts aus. Vllt sagt euch das was.

                            Auch einer bei ner privaten Nachricht hat gesagt ich muss wo anders was falsch gemacht haben. Aber ich weis auch nicht wo das sein soll vorallem weil ich das sonst nirgends verwende .

                            Lg Flo

                            Kommentar


                            • #15
                              Es gibt in jedem Browser einen Debugger für Javascript, du könntest den einmal bemühen .

                              Zudem ist das
                              PHP-Code:
                              chr(34
                              auch nicht mehr als schlechter Stil. Wenn du Single-Quotes verwendest, kannst du die doppelten ohne Escape verwenden:

                              PHP-Code:
                              echo '<a href="'$i'.php">Ein Link</a>'
                              Oder noch lieber eine Template-Engine wie Smarty oder Twig.
                              GitHub.com - ChrisAndChris - RowMapper und QueryBuilder für MySQL-Datenbanken

                              Kommentar

                              Lädt...
                              X