Ankündigung

Einklappen
Keine Ankündigung bisher.

checkbox .. mehrere werte auslesen bei gleichem namen

Einklappen

Neue Werbung 2019

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

  • checkbox .. mehrere werte auslesen bei gleichem namen

    hab ein problem, bei dem ich nicht weiterkomme:
    ich habe ein formular in einer tabelle, welche auf eine mysql-tabelle zugreift.
    innerhalb dieses formulars wird für jede reihe der mysql-tabelle eine neue checkbox erstellt. so weit, so gut.

    das sieht in etwa so aus:
    PHP-Code:
    <?php
    while ($felder mysql_fetch_array($result))
    {
      
    $id=$felder['id']; /
      
    $datum=$felder['datum'];
      
    $headline=$felder['headline'];
      
      echo 
    '<tr><td align="center"><input type="checkbox" name="loeschen" value=',$id,'></td><td>';
      echo 
    $datum,' </td><td> ',$headline ,'</td></tr>';
    }
    ?>
    die einträge werden in umgekehrter reihenfolge aufgelistet;das regele ich über die mysql-abfrage.

    so, je nachdem, welche checkbox angeklickt wird, dieser wert wird per $id an das auswerteformular übergeben. das funktioniert auch mit einer angeklickten checkbox, aber sobald mehrere checkboxen angekreuzt sind (dafür sind sie ja auch da), weiss ich nicht, wie ich das auslesen soll.
    dafür hatt ich mal ne testschleife geschrieben:

    PHP-Code:
    <?php
    $result 
    mysql_query("SELECT id FROM news");
    $count=mysql_num_rows($result);
    echo 
    $loeschen[0],'

    '
    ;
    while (
    $erg mysql_fetch_array($result))
    {
    $id=$erg['id']; //auslesen der ids aus mysql-tabelle
    if ($id == $loeschen)
      {
      echo 
    $id'löschen';
      }
      
    }
    ?>
    problem: mir wird, wenn ich z.b. die einträge mit id5 und id6 selektiere, bekomm ich, da zuerst eintrag mit id6 und darunter id5 stehen, nur den wert 5 zurück, ich hätt aber gern alle angeklickten IDs ..

    für hilfe wäre ich sehr dankbar

  • #2
    Auch du darfst mal die FAQ lesen:

    11.10. Wie kann man Checkboxen verarbeiten?
    http://www.php-faq.de/q/q-formular-checkbox.html

    Gruß
    phpfan

    Kommentar


    • #3
      PHP-Code:
      <?php
      echo '<tr><td align="center"><input type="checkbox" name="loeschen[]" value=',$id,'></td><td>'
      ?>
      So sollte es gehen

      Kommentar


      • #4
        @ phpfan:
        das hatte ich mir schon angekuckt, wusste aber nicht genau, was diese foreach-schleife zu sagen hat:
        PHP-Code:
        <?php
        if (isset($_REQUEST['cbutton'])) {
          
        reset($_REQUEST['cbutton']);

          foreach (
        $_REQUEST['cbutton'] as $k => $v) {
            print 
        "$k $v\n";
          }
        } else {
          print 
        "alle cbutton schlafen schon.\n";
        }
        ?>
        sind $k und $v irgend welche variablen für das beispiel? find das nen bisschen wenig erklärt dort.


        @ sunman: probier ich gleich mal.

        Kommentar


        • #5
          Wieso $_REQUEST?
          Du musst halt das <input name="name[]"> nutzen...

          Kommentar


          • #6
            das ist der beispiel-quellcode aus dem link von phpfan ..
            ich fand das nen bisschen undurchsichtig

            Kommentar


            • #7
              Okay, dann nutz das $_REQUEST..
              Hast du die Checkbox auch um die [] erweitert?

              Kommentar


              • #8
                [] hab ich eingefügt, wie du geschrieben hat, allerdings zeigt er mir dann mit meiner testschleife nix mehr an.

                eigentlich müsste ich doch auf die einzelnen werte aus loeschen[] wie folgt drauf zugreifen können: $test = $loeschen[1]

                ??!

                Kommentar


                • #9
                  PHP-Code:
                  <?php 
                  while ($felder mysql_fetch_array($result)) 

                    
                  $id=$felder['id'];
                    
                  $datum=$felder['datum']; 
                    
                  $headline=$felder['headline']; 
                     
                    echo 
                  '<tr><td align="center"><input type="checkbox" name="loeschen[]" value='$id'></td><td>'
                    echo 
                  $datum,' </td><td> ',$headline ,'</td></tr>'

                  ?> 

                  <?php 
                  if (isset($_REQUEST['loeschen'])) { 
                    
                  reset($_REQUEST['loeschen']); 

                    foreach (
                  $_REQUEST['loeschen'] as $k => $v) { 
                      print 
                  "$k $v\n"
                    } 
                  } else { 
                    print 
                  "alle cbutton schlafen schon.\n"

                  ?>

                  Kommentar


                  • #10
                    ok, hab es jetzt hinbekommen. trotzdem danke für die antworten :wink:
                    war ein dummer fehler im programm, den ich lieber nicht erwähne ..

                    Kommentar

                    Lädt...
                    X