[Variablen] var. Anzahl von checkboxen

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

  • [Variablen] var. Anzahl von checkboxen

    Hallo zusammen,

    habe zwar in der Suche was gefunden, komme aber nicht klar.

    ich habe eine unbekannte Anzahl von Einträgen in der DB in einer Spalte für Kategorien.
    Um mir alle Kategorien mit einer Checkbox per echo ausgeben zu lassen, mach ich
    PHP-Code:
    $ausgabe=@mysql_query("SELECT * FROM reskategorie ORDER BY kategorie");
    $gesamt = @mysql_num_rows($ausgabe);
            echo 
    "Es sind $gesamt Kategorien gespeichert\n"
    for (
    $i=1;$i<=$gesamt;$i++)
    {
                
    $zeile=mysql_fetch_array($ausgabeMYSQL_ASSOC);
                echo 
    "<input name=\"Kategorie$i\" type=\"checkbox\" id=\"Kategorie$i\" value=\"$zeile[kategorie]\">$zeile[kategorie]<br>\n";

    Das funktioniert auch. Das war Seite1.
    Nun möchte ich, daß mir auf seite2 alle ausgewählte Werte der unbekannten Anzahl von Checkboxen auf seite1 ausgegeben werden.
    Und genau hier klemmst bei mir, da ich nicht weiß, wie ich die unbekannte Anzahl von Werten ansprechen soll. Wer kann mir helfen und hat eine Idee, wies geht. Freue mich auf rege Kommunikation(oder wie das heißt?).
    Dann nur noch die Kleinigkeit, das egal wieviel Werte ausgewählt wurden, diese in eine andere Tabelle abgespeichert werden müssen. Aber dazu später mehr.

    Danke für Eure Hilfe

  • #2
    mache es so....
    PHP-Code:
    $ausgabemysql_query("SELECT * FROM reskategorie ORDER BY kategorie") or die( mysql_error() );
    echo 
    "Es sind ".mysql_num_rows($ausgabe)." Kategorien gespeichert\n"

    while(
    $zeile=mysql_fetch_assoc($ausgabe))
    {
        echo 
    "<input name=\"kat[]\" type=\"checkbox\" value=\"".$zeile['id']."\">".$zeile['kategorie']."<br>\n";

    auf der folgenden seite hast du ein array mit allen ids, die markiert worden sind.
    PHP-Code:
    echo "<pre>";
    print_r($_POST['kat']);
    echo 
    "</pre>"
    INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


    Kommentar


    • #3
      Das mit dem ersten Teil funktioniert gut.
      Aber ich bekomme auf der zweiten seite keine Ausgabe. Was mach ich faklsch, oder was fehlt noch?

      Kommentar


      • #4
        was hast du auf der 2. seite zum test gemacht?
        PHP-Code:
        echo "<pre>";
        print_r($_POST['kat']);
        echo 
        "</pre>"
        .... sollte klappen, wenn du method="post" in formular hast. hast du get nimmt $_GET['kat'].

        hast du eine ältere php-version ( < 4.1.x ) musst du $HTTP_POST_VARS['kat'] bzw $HTTP_GET_VARS['kat'] verwenden.
        INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


        Kommentar


        • #5
          Danke für den Tip,

          es lag erstmal wirklich an der PHP-Version. Ich habe laut Infofile die 4.0.6.

          Doch leider bekomme ich mit dem "print" oder dem "echo"-Befehl keinerlei Ausgabe.
          Mit "print_r ($HTTP_POST_VARS['kat']);" bekomme ich folgende Ausgabe:

          Array ( [0] => 2 [1] => 3 [2] => 6 [3] => 5 [4] => 4 )

          Leider habe ich hier im Handbuch zu print_r keine Treffer. Würd mich mal interresieren was der macht.

          Wie mache ich jetzt eine ordentliche Ausgabe der Werte?
          Muß noch ein bißchen basteln.

          Kommentar


          • #6
            Habe das mir der ordentlichen Ausgabe mal so gemacht:
            PHP-Code:
            $allekats = ($HTTP_POST_VARS['kat']);
            echo 
            "<br>";
            for(
            $i=0$i<=$gesamt;$i++)
            {
            echo 
            "$allekats[$i]<br>";} 
            .

            Kann man das noch eleganter gestalten?
            Es funktioniert erstmal dank Deiner Hilfe.

            Kommentar


            • #7
              Original geschrieben von StephanF
              Leider habe ich hier im Handbuch zu print_r keine Treffer. Würd mich mal interresieren was der macht.
              das steht aber wirklich im handbuch drin.

              http://de.php.net/manual/de/function.print-r.php

              und mit dem <pre> hätte die ausgabe auch schön strukturiert ausgesehen. aber egal.
              Kann man das noch eleganter gestalten?
              kann man.
              PHP-Code:
              if (isset($HTTP_POST_VARS['kat']) && count($HTTP_POST_VARS['kat'])>0)
              {
                  for(
              $i=0$i<count($HTTP_POST_VARS['kat']);$i++)
                  {
                      echo 
              $HTTP_POST_VARS['kat'][$i].'<br />';
                      
              // besser sollte hier aber keine ausgabe rein,
                      // sondern die auswertung was gewählt wurde.
                      // schliesslich brauchst du das ja im weiteren
                      // verlauf deines scriptes.
                  
              }

              INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


              Kommentar

              Lädt...
              X