Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] IDs von Checkboxen übergeben

Einklappen

Neue Werbung 2019

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

  • [Erledigt] IDs von Checkboxen übergeben

    Servus zusammen.

    Ich habe eine Datenbank, aus der ich mir Daten in einer Tabelle ausgeben kann. Jetzt möchte ich um die zu löschen die Daten mit einer Checkbox auswählen und dann auf einen Button klicken, der den Befehl ausführt. Rein theoretisch sollte das alles funktionieren aber ich weiß nicht wie ich die IDs der gecheckten Boxen übergebe.
    Ich hoffe mir kann jemand weiterhelfen. Danke schonmal.

    Mit freundlichen Grüßen
    Stewie


  • #2
    wie ich die IDs der gecheckten Boxen übergebe
    Was meinst du damit? DU erstellst ja die Checkboxen, dh du kannst ja selbst bestimmen was im HTML als value übergeben und somit im $_POST ankommen wird.

    Schau mal hier: http://php-de.github.io/jumpto/auswahlfelder/
    Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
    PHP.de Wissenssammlung | Kein Support per PN

    Kommentar


    • #3
      Ich gebe mal meinen Code an dann ists vllt verständlicher.

      PHP-Code:
      echo '<table>';
          echo 
      '<table border = "1">';
          while(
      $row mysqli_fetch_object($ergebnis))
          {
              echo 
      '<tr>';
              echo 
      '<td>',$row->kategorie,'</td>';
              echo 
      '<td>',$row->url,'</td>';
              echo 
      '<td>',$row->datum_des_eintrags,'</td>';
              echo 
      '<td>',$row->notiz,'</td>';
              echo 
      '<td>',$row->id,'</td>';
              echo 
      '<form method="post" action="daten_aendern.php"><td><input type="button" name="aendern" value="Ändern"></input></form></td>';
              echo 
      '<td><form method="post" action="daten_loeschen.php"><input type="checkbox" name="loeschen"></input></form></td>';
              echo 
      '</tr>';
          }
          echo 
      '</table>'
      Ich habe ja den Boxes selbst keine ID gegeben und jetzt würde ich die gerne herausfinden.

      Kommentar


      • #4
        ich würde alles in einen form tag packen und die id beui den feldern mitgeben.

        Kommentar


        • #5
          Ich habe ja den Boxes selbst keine ID gegeben und jetzt würde ich die gerne herausfinden.
          Lass dir $_POST ausgeben und schau was nach Absenden ankommt.

          Von selbst haben Checkboxen keine "ID". Dafür musst du sorgen, das es eine ID gibt die übertragen wird. Schau dir den Link oben nochmals an, da gibt es auch ein value Attribut.

          Am besten ist vermutlich ein einziges Form und alle über ID angeben, schau mal hier: http://php-de.github.io/jumpto/auswa...box-elemente-1

          LG
          Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
          PHP.de Wissenssammlung | Kein Support per PN

          Kommentar


          • #6
            Also irgendwie krieg ichs nicht gebacken Der meint immer wenn ich das so mache wie auf der Seite
            "Parse error: syntax error, unexpected T_ECHO in C:\xampplite\htdocs\db_projekt\db_steuerung.php on line 50"
            und ich hab keinen Schimmer warum.
            Mein Code zum Löschen lautet übrigens:
            PHP-Code:
            if (isset ($POST["btn13"]))
                {    
                
            $loeschen 'DELETE FROM weblinks WHERE id=""';
                
                
            $loesch mysqli_query($db$loeschen);
                } 

            Kommentar


            • #7
              Da ist aber kein echo und ich wette, keine von denen ist Zeile 50.
              Zitat von nikosch
              Macht doch alle was Ihr wollt mit Eurem Billigscheiß. Von mir aus sollen alle Eure Server abrauchen.

              Kommentar


              • #8
                Und das wird auch nie "true" ergeben:
                PHP-Code:
                if (isset ($POST["btn13"])) 
                Die Deutsche Rechtschreibung ist Freeware! Du darfst sie kostenlos nutzen, allerdings ist sie nicht Open Source, d.h. Du darfst sie nicht verändern oder in veränderter Form veröffentlichen.

                Kommentar


                • #9
                  Hmm sry für die verwirrung, das hier wirft die fehler auf
                  PHP-Code:
                  echo $_POST['AGB_Best']; // Ja
                  var_dump(isset($_POST['AGB_Best'])); // true 
                  Ich hab das hier jetzt einfach von der Seite kopiert bei mir in der Datei hatte ich das natürlich alles angepasst.
                  Und vor allem alles was hinter dem // steht wird doch auch ausgeklammert also brauct man das nicht oder?

                  Kommentar


                  • #10
                    Und was kommt davor?
                    Zitat von nikosch
                    Macht doch alle was Ihr wollt mit Eurem Billigscheiß. Von mir aus sollen alle Eure Server abrauchen.

                    Kommentar


                    • #11
                      Ok ich lade mal den gazen Code hoch:
                      PHP-Code:
                      <?php

                          
                      include('db_verbinden.php');

                          echo

                          <fieldset>
                          <div>
                          <label>Kategorie:</label>
                          <select id="kategorie" name="kategorie" size="1">
                              <option id"1"></option>
                              <option value=""></option>
                              <option value=""></option>
                              <option value=""></option>
                              <option value=""></option>
                              <option value=""></option>
                              <option value=""></option>
                              <option value=""></option>
                              <option value=""></option>
                              <option value=""></option>
                          </select>
                          <form action="daten_hinzufuegen.php" method="post"><button>hinzufügen</button></form>
                          <form action="" method="post"><button id="bnt13">löschen</button></form>
                          </div>
                          </fieldset>
                          '
                      ;
                          
                          
                      $ergebnis mysqli_query($db'SELECT * FROM weblinks');
                          echo 
                      '<table>';
                          echo 
                      '<table border = "1">';
                          echo 
                      '<tr>';
                              echo 
                      '<th>ID</th>';
                              echo 
                      '<th>URL</th>';
                              echo 
                      '<th>Kategorie</th>';
                              echo 
                      '<th>Notiz</th>';
                              echo 
                      '<th>Datum des Eintrags</th>';
                              echo 
                      '<th></th>';
                              echo 
                      '</tr>';
                          while(
                      $row mysqli_fetch_object($ergebnis))
                          {
                              echo 
                      '<tr>';
                              echo 
                      '<td>',$row->id,'</td>';
                              echo 
                      '<td>',$row->kategorie,'</td>';
                              echo 
                      '<td>',$row->url,'</td>';
                              echo 
                      '<td>',$row->notiz,'</td>';
                              echo 
                      '<td>',$row->datum_des_eintrags,'</td>';
                              echo 
                      '<td><form method="post" action="daten_aendern.php"><input type="button" name="aendern" value="Ändern"></input></form></td>';
                              echo 
                      '<td><form method="post" action=""><input type="checkbox" value="delete" name="loeschen"></input></form></td>';
                              echo 
                      '</tr>';
                          }
                          echo 
                      '</table>';
                          
                          
                      //$loeschen = $POST["loeschen"];
                          
                          
                      array(
                          
                      'loeschen' => 'delete'
                          
                      )
                          
                          echo 
                      $_POST['loeschen'];
                          
                      var_dump(isset($_POST['loeschen']));
                          
                          if (isset (
                      $POST["btn13"]))
                          {    
                          
                      $loeschen 'DELETE FROM weblinks WHERE id="loeschen"';
                          
                          
                      $loesch mysqli_query($db$loeschen);
                          }
                      ?>

                      Kommentar


                      • #12
                        Ungetestet:
                        PHP-Code:
                         <?php

                            
                        include('db_verbinden.php');

                            
                        $query "Select
                                         `id`, 
                                         `kategorie`, 
                                         `url`, 
                                         `notiz`, 
                                         `datum_des_eintrags`
                                       from
                                         `weblinks`"
                        ;
                                         
                            
                        $result mysqli_query($db$query)
                               or die(
                        "MySQL-Error: " mysqli_error($db));

                            echo 
                        '<form action="' $_SERVER['SCRIPT_NAME'] . '" method="post">
                                  <table border = "1">
                                   <tr> 
                                    <th>ID</th> 
                                    <th>URL</th> 
                                    <th>Kategorie</th> 
                                    <th>Notiz</th> 
                                    <th>Datum des Eintrags</th> 
                                    <th></th> 
                                  </tr>'
                        ;
                                  
                            while(
                        $row mysqli_fetch_object($result))
                            {
                                echo 
                        '<tr>
                                       <td>' 
                        $row->id '</td> 
                                       <td>' 
                        $row->kategorie '</td> 
                                       <td>' 
                        $row->url '</td> 
                                       <td>' 
                        $row->notiz '</td> 
                                       <td>' 
                        $row->datum_des_eintrags '</td> 
                                       <td><input type="checkbox" value="' 
                        $row->id '" name="loeschen[]"></td>
                                      </tr>'
                        ;
                            }
                            
                            echo 
                        '</table>
                                  <input type="submit" name="submit" value="Senden">
                                  </form>'
                        ;
                            
                            if (isset (
                        $_POST['loeschen']))
                            {   
                                foreach(
                        $_POST['loeschen'] as $id)
                                {
                                    
                        $query "DELETE 
                                                FROM 
                                                  `weblinks`
                                                WHERE 
                                                  `id`=
                        $id";
                            
                                    
                        mysqli_query($db$query)
                                        or die(
                        "MySQL-Error: " mysqli_error($db));
                                }
                            }
                        ?>
                        Die Deutsche Rechtschreibung ist Freeware! Du darfst sie kostenlos nutzen, allerdings ist sie nicht Open Source, d.h. Du darfst sie nicht verändern oder in veränderter Form veröffentlichen.

                        Kommentar


                        • #13
                          Erstmal danke uha aber bei mir funktioniert das nicht.
                          Ich versehe ja nicht wieso man die ID nicht einfach mit einem ganz normalen $POST bekommen kann aber der Typ der das alles erfunden hat hat sich bestimmt was dabei gedacht.

                          Kommentar


                          • #14
                            Zitat von Stewie Beitrag anzeigen
                            bei mir funktioniert das nicht.
                            Grandiose Problembeschreibung!

                            Richtig debuggen

                            1. Man bemerkt, dass ein Skript nicht das tut, was es soll.
                            2. Man schreibt an den Anfang des Scriptes die Zeile: error_reporting(-1);
                            3. Man verwendet ini_set('display_errors', true); damit die Fehler auch angezeigt werden.
                            4. Man versucht, die Stelle die daran Schuld sein kann, schonmal einzugrenzen. Falls dies nicht geht, wird zunächst das komplette Skript als fehlerhaft angesehen.
                            5. An markanten Stellen im Skript lässt man sich wichtige Variableninhalte ausgeben und ggf. auch in bedingten Anweisungen eine kurze Ausgabe machen, um zu überprüfen, welche Bedingung ausgeführt wurde. Wichtig bei MySQL Fehlern (...not a valid MySQL result resource...): mysqli_error() verwenden oder Abfrage ausgeben und zb mit phpmyadmin testen.
                            6. Schritt 5 wird so lange wiederholt, bis Unstimmigkeiten im Skript auffallen
                            7. Damit hat man das Problem (Unstimmigkeit) gefunden und kann versuchen diese zu beheben. Hierzu dienen dann die PHP-Dokumentation und andere Quellen als Ratgeber.
                            8. Lässt sich das konkrete Problem trotzdem nicht beheben, kann man in Foren um Rat fragen.
                            9. Das Programm läuft und man kann die Debug-Ausgaben wieder entfernen.
                            Die Deutsche Rechtschreibung ist Freeware! Du darfst sie kostenlos nutzen, allerdings ist sie nicht Open Source, d.h. Du darfst sie nicht verändern oder in veränderter Form veröffentlichen.

                            Kommentar


                            • #15
                              Sry aber viel zu beschreiben gibt es da nicht es passiert einfach garnichts. Also die Seite wird geladen aber ansonsten kann man da rumklicken und nix passiert.

                              EDIT: Also ich weiß nicht was da schief ging aber ich habs nochmal probiert und jetzt funktionierts. Zumindest soweit das er alles löscht außer 2 datensätze.

                              Kommentar

                              Lädt...
                              X