kleines array problem

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

  • kleines array problem

    Hallo leute!

    Ich hab schon über 1 stunde über eine Lösung nachgedacht, aber ich komme einfach nicht rauf, ist bestimmt sehr einfach.

    Also ich habe ein formular wo man verschiedene Kategorien wählen kann. Wenn man eine Kategorie gewählt hat, soll diese Kategorie in ein array gespeichert werden,sodass man verschiedene kategorien, nacheinander wählen kann.
    Die Werte vom Formular werden mit GET übergeben: ---> ?categorie_id=25

    Hat einer eine Idee, wie ich die Kategorien nacheinander in ein array speichern kann?


    Vielen dank!!!

    MFG, stefan

  • #2
    Also du hast ein Formular mit mehreren Auswahlmöglichkeiten?
    Und du willst die Ausgewählten in einem Array sammeln?
    Dann benenn die Checkboxen (ich geh mal davon aus, dass es welche sind) doch einfach mit cat1 bis catX und setzt als value die entsprechende Kategorie.
    Dann prüfst du, ob die entsprechende $_GET['cat1'] bis $_GET['catX'] gesetzt sind und fügst die Werte mit array_push() an.

    Kommentar


    • #3
      einfacher ist es vorher schon eine "Array-Elementgruppe" (wie auch immer ) zu bilden:

      <input type=checkbox name=cat[] value=1>
      <input type=checkbox name=cat[] value=1>
      <input type=checkbox name=cat[] value=3>
      ...

      per POST übertragen (weiß nicht, geht das eigentlich über GET??) wird es dann automatisch zu einem Array (wegen den [] nach dem Namen)

      Phil

      Kommentar


      • #4
        Original geschrieben von PhilW
        per POST übertragen (weiß nicht, geht das eigentlich über GET??) wird es dann automatisch zu einem Array (wegen den [] nach dem Namen)
        Doch doch, funktioniert.

        Abfrage bzw. Ausgabe kann über
        $_GET['cat'][0] bis $_GET['cat'][xxx] bzw. POST erfolgen.

        Zuletzt geändert von Mordred; 25.04.2005, 08:00.

        Kommentar


        • #5
          Hi Leute!

          Danke erstmal für eure antworten. Also es ist ein drop down menü d.h. keine checkboxen.

          So sieht mein Menü aus.
          Dort soll der User, immer nach und nach seine Kategorien auswählen können und diese sollen dann in ein Array bzw. die categorieid in ein array gespeichert werden.


          PHP-Code:
           <select name="categorie_id" onChange="this.form.submit();"style="width:250px;">
          <
          option value="">-------------------------------</option>
          <
          option value="34">disketten</option>
          <
          option value="25">festplatten</option>
          </
          select
          Wär super, wenn mir noch jemand behilflich sein könnte :-)


          Danke, gruß, stefan

          Kommentar


          • #6
            Sehe ich das richtig, dass das Formular immer wieder aufgerufen wird, bis der Benutzer fertig ist und dann einen Button wie [FERTIG] oder sowas klickt?

            Dann mußt du nur die bisher ausgewählten Kategorie in jedem Formular einbauen. Das kann man z.B. durch eine Komma-separierte Liste in einem hidden-Feld machen:

            <input type="hidden" name="categories" value="1,4,3,17,29">

            Wenn das Formular nun erneut mit einer weiteren Kategorie abgeschickt wird, wird die ID einfach an die Liste angehängt. Es ginge direkt mit einem Array:

            <input type="hidden" name="arrChosenCat[]" value="1">
            <input type="hidden" name="arrChosenCat[]" value="4">
            <input type="hidden" name="arrChosenCat[]" value="3">
            <input type="hidden" name="arrChosenCat[]" value="17">
            <input type="hidden" name="arrChosenCat[]" value="29">

            Die Liste wird einfach immer länger.

            PHP-Code:
            $arrChosenCat $_POST['arrChosenCat'];

            if (
            $_POST['submit']) {
                
            $arrChosenCat[] = $_POST['categorie_id'];
            }

            foreach (
            $arrChosenCat AS $intChosenCat) {
                echo 
            '<input type="hidden" name="arrChosenCat[]" value="'.$intChosenCat.'">';

            Die bereits gewählten Kategorien sollten natürlich nicht mehr zur Auswahl stehen, ist ja klar!

            Bei POST ist die zweite alternative besser, bei GET würde ich mit der Komma-Liste arbeiten.

            Trifft es das?
            Zuletzt geändert von cst; 25.04.2005, 11:41.
            Ich denke, also bin ich.
            Manche sind trotzdem!

            Kommentar

            Lädt...
            X