Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] Datensätze löschen nach Auswahl aus Formular (checkboxen)

Einklappen

Neue Werbung 2019

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

  • [Erledigt] Datensätze löschen nach Auswahl aus Formular (checkboxen)

    Hallo und schönen guten Abend,

    ich habe folgendes vor:
    Ich habe eine Datenbank, in der Jobangebote abgelegt sind. Zur Pflege dieser Datenbank erstelle ich ein Formular, in dem alle vorhandenen Angebote aufgelistet sind, jeweils mit einer Checkbox davor. Wird die Box angehakt, so soll das entsprechende Angebot aus der Tabelle gelöscht werden.

    Das Formular sieht folgendermaßen aus:
    Code:
      <form action="admin_jobs.php" method="POST" enctype="multipart/form-data">
      <input type='hidden' name='task' value='job_loeschen' />
        <?php $abfrage_jobs = "SELECT titel_de,id FROM jobangebote";
      $ergebnis_jobs = mysql_query($abfrage_jobs);
      $anzahl_jobs=0;
      while ($inhalt_jobs = mysql_fetch_row($ergebnis_jobs)) {
       echo '<input type="checkbox" name="wechmit_'.$inhalt_jobs[1].'" value="1" style="width:50px;">&nbsp;&nbsp;- '.$inhalt_jobs[0].' <br />';
       $anzahl_jobs++;   
      }
      echo '<input type="hidden" name="anzahl" value="'.$anzahl_jobs.'">';
        ?>   
     <br /><br />
        <input type="submit" class="Button" value="L&ouml;schen">
        </form>
    Die Anzeige ist o.k., Formular funktioniert soweit. Das Löschen soll eigentlich dieses Script übernehmen:
    PHP-Code:
     $undwaskommtjetzt=$_POST['task'];
     if (
    $undwaskommtjetzt=='job_loeschen') {
      for (
    $count 1$count <= $_POST['anzahl']; $count++) {
       
    $loeschen=???????;
       if (
    $loeschen=='1') {
       
    $id=$count;
       
    $sql "
       DELETE FROM
       jobangebote
       WHERE
       id=
    $id";
       
    mysql_query($sql);
       } 
    Mein Problem sind jetzt die Fragezeichen. Wie gebe ich die Variablen in der Schleife an, damit nacheinander wechmit_1, wechmit_2 etc. geprüft werden? Ich hab's schon mit $_POST[wechmit_.$count] versucht, aber das ist wohl nicht die richtige Syntax.


  • #2
    Hallo,

    wie waere es mit folgendem:
    <input name="wechmit[]" value="<?= $id ?>" type="checkbox" />
    ..
    .


    In PHP hast du nun einen $_POST["wechmit"]-Array, den du in einer Schleife durchlaufen kannst.

    foreach ($_POST["wechmit"] as $id) {
    // delete $id
    }
    "Mein Name ist Lohse, ich kaufe hier ein."

    Kommentar


    • #3
      Fast,
      PHP-Code:
      '<input name="wechmit['.$anzahl_jobs.']" 
      brachte den gewünschten Erfolg.

      Aber trotzdem danke, Du hast mich auf die richtige Spur gebracht.

      Kommentar


      • #4
        Beide Möglichkeiten funktionieren, aufgrund der Eigenheit, dass nur angeklickte CBs im POST Array auftauchen.
        Allerdings funktioniert
        PHP-Code:
        '<input name="wechmit['.$anzahl_jobs.]
        wohl nur, wenn
        - die fehlenden ' ' lediglich ein Fehler beim Posten waren (den Fehler selbst sieht man ja schon an der Farbe)
        - $anzahl_jobs ein Zähler und kein konstanter Wert ist

        Je nach Variante führt dann
        PHP-Code:
        foreach ($_POST["wechmit"] as $id) {
          
        // delete $id
          

        oder
        PHP-Code:
        foreach ($_POST["wechmit"] as $id => $tmp) {
          
        // delete $id
          

        zum Ziel.
        --

        „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
        Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


        --

        Kommentar

        Lädt...
        X