Checkbox-Werte an eine andere Seite übergeben

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

  • Checkbox-Werte an eine andere Seite übergeben

    Hallo,

    Mein Problem ist folgendes:
    Auf der ersten Seite werden die ID, der Vorname und der Nachname ausgegeben. Durch die Anzahl der gefundenen ID bekommt jede Spalte eine Checkbox.
    Jetzt soll es möglich sein, mehrere Kunden auszuwählen und die ausgewählten Kunden auf einer neuen Seite anzuzeigen, wo dann noch der Rest, wie Straße, PLZ und Ort ausgegeben wird.
    Ich habe das ganze mit einer HEADER (Location) gemacht, aber ich weiß nicht wie ich die ausgewählten Checkbox Werte zur nächsten Seite übergeben kann.
    Die HEADER Funktion deswegen, da ich noch andere werte mitgeben möchte, wie z.B. der angemeldete User usw.

    Meine Checkbox:
    $res = mysql_query("SELECT * FROM Kunde");
    $num = mysql_num_rows($res);

    for ($i=0; $i<$num; $i++)
    {
    $nn = mysql_result($res, $i, "KU_ID");
    $vn = mysql_result($res, $i, "Vorname");
    $pn = mysql_result($res, $i, "Nachname");

    echo "<table>";
    echo "<tr> <td width='40'><input type='checkbox' checked name='box[]'";
    echo " value=$nn>";

    ?>
    <td width="100"> <?echo $vn;?>
    <td width="150"> <?echo $pn;?>

    Der Header:
    if(isset($_POST["box"]) AND !empty($_POST['box']))
    {
    $i = 0;
    while($i <= count($_POST['box'])) {
    echo $_POST['box'][i];
    $i++;

    $MA_NR = $_GET["MA_NR"];

    if (mysql_errno())
    die ("MySQL-Fehler: " . mysql_error());

    else
    {

    $location = “//Localhost/Kunde.php?MA_NR=$MA_NR;”
    header("Location: $location");
    exit;
    } }}

  • #2
    Hey,

    bin zwar auch newbie, aber speicher doch die Anzahl der ausgelesenen Einträge bzw die Anzahl der Checkboxen in ein unsichtbares Feld was du beim Submit mit übergibst.
    Dann benutzt du bei dem erstellen der Checkboxen den Zähler i von der Schleife und nummerierst die Checkboxnamen damit durch. Als value die Kunden ID ist gut.
    Damit hast du in der nächsten Seite die Anzahl der Checkboxen und weißt wieviele Detailierte Einträge du aus der Datenbank holen musst und kannst das _POST Array dementsprechend durchlaufen.

    Kommentar


    • #3
      Vielen Dank für deine schnelle Antwort, werde es mal ausprobieren.

      Das Problem ist aber auch wenn ich die checkboxen markiert habe, steht dann alls URL im Browser: //Localhost/.../Kunde.phpMA_NR=1000&KU_ID=Array <-- leider nicht die Zahl (z.B.: KU_ID = 1,2,3 ...)

      Kommentar


      • #4
        echo "<pre>";
        print_r($_GET['KU_ID']);
        echo "</pre>";

        so siehst du mal was da drinnen ist

        Kommentar


        • #5
          Da gibt es aber eine Menge zu verbessern:

          Zum Thema Select * siehe:

          16.14. Warum soll ich nicht SELECT * schreiben?
          http://www.php-faq.de/q/q-sql-select.html

          Warum benutzt du 3 mysql_result anstatt 1x mysql_fetch_*? Damit die Datenbank mehr zu tun bekommt? Siehe dazu in der Doku nach.

          Und deine Abfrage auf einen Fehler (mysql_errno) kommt viel zu spät, das gehört direkt an mysql_query:

          $result = mysql_query("Select.....") or die ("MySQL-Fehler: " . mysql_error());

          Gruß
          Uwe

          Kommentar


          • #6
            echo "<tr> <td width='40'><input type='checkbox' checked name='box[]'";

            Muss in das box[] array nicht ein Zähler? oder geht das automatisch? So kannst du die einzelnen Checkboxen doch nicht identifizieren oder doch?

            Sorry, kann dir leider mehr nich helfen, heute erst angemeldet hier

            Kommentar


            • #7
              Original geschrieben von Turbo
              Muss in das box[] array nicht ein Zähler? oder geht das automatisch?
              Nein und ja. Siehe

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

              Gruß
              Uwe

              Kommentar


              • #8
                Erst mal allen vielen Dank!
                Habe das Problem gelößt ohne HEADER funktion.
                Doch jetzt müßte ich nocht wissen, wie ich die übermittelten Arrays in eine Select abfrage bekomme!

                als URL im Browser seht jetzt:
                //localhost/.../Kunde.php?MA_NR=1000&KU_NR=1000&box%5B%5D=110&box%5B%5D=111&box%5B%5D=112&box%5B%5D=113&box%5B%5D=11 5&box%5B%5D=116

                Möchte jetzt gerne abfragen,
                "SELECT KU_ID, Name, ..., ORT
                FROM KUNDE WHERE KU_NR = ????;"

                Vielen Dank!

                Kommentar

                Lädt...
                X