Foreach Blackout

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

  • Foreach Blackout

    Hi Folks

    Îch habe da ein kleines Blackout. Folgendes: in einem Formular habe ich Checkboxen eingebunden und welche ich mittels Array auslese, wenn aber das Formular nicht korrekt ausgefüllt wurde, sollten die gewählten Checkboxen auch aktiv sein (checked). Ich habe nun mit einer Foreach Schlaufe das array ausgelesen und will nun die input checkboxen mittels if ($var == Inhalt) else anzeigen lassen. Nun musst ich feststellen das die checkboxen vevielfacht werden, weil jeder Wert neu durch die Schlaufe läuft. Wo ist mein Gedankensfehler, wie kann ich das umgehen?

    PHP-Code:
    foreach($checkbox as $var)
    {
      if (
    $var == "Inhalt")
      {
      echo
    "<input type="checkbox" value="Inhalt" checked name="checkbox[]" style="border:0;" />Inhalt"
      }
      else
      {
    echo
    "<input type="checkbox" value="Inhalt" name="checkbox[]" style="border:0;" />Inhalt";
      }


  • #2
    bei dir haben alle checkboxen den gleichen wert bei "value". dieser steht dann in $var drin. das scheint nicht korrekt zu sein.

    p.s. gib mal bei google "register globals" ein und finde heraus, was du besser machen kannst.

    Kommentar


    • #3
      Neine haben sie nicht. Ich habe nur eine Beispiel aufgeschrieben.

      PHP-Code:
      $_POST['checkbox'];
      foreach(
      $checkbox as $var)
      {
        if (
      $var == "Inhalt1")
        {
        echo
      "<input type="checkbox" value="Inhalt1" checked name="checkbox[]" style="border:0;" />Inhalt1"
        }
        else
        {
        echo
      "<input type="checkbox" value="Inhalt1" name="checkbox[]" style="border:0;" />Inhalt1";
        }
        if (
      $var == "Inhalt2")
        {
        echo
      "<input type="checkbox" value="Inhalt2" checked name="checkbox[]" style="border:0;" />Inhalt2"
        }
        else
        {
        echo
      "<input type="checkbox" value="Inhalt2" name="checkbox[]" style="border:0;" />Inhalt2";
        }
        if (
      $var == "Inhalt3")
        {
        echo
      "<input type="checkbox" value="Inhalt3" checked name="checkbox[]" style="border:0;" />Inhalt3"
        }
        else
        {
        echo
      "<input type="checkbox" value="Inhalt3" name="checkbox[]" style="border:0;" />Inhalt3";
        }
      ...
      usw.

      Kommentar


      • #4
        was bedeutet die tiefsinnige zeile mit $_POST?

        es ist immer noch nicht korrekt. du gehst durch _alle_ checkboxen.

        so laufen 2,3,4,...,n-te checkbox in den ersten else-block.
        dann laufen 1,3,4,5,...,n-te checkbox in den zweiten else block, etc.

        das ist auch falsch.

        was willst du eigentlich erreichen?

        Kommentar


        • #5
          Das das flasch ist und wie es sich verhält weiss ich auch, ich suche ein Tipp wie ich, das was ich im ersten Beitrag beschrieben habe, erreichen kann!

          Besten Dank

          P.S. Mit register globals hat das nicht viel zu tun bei mit denn diese sind immer auf off geschaltet!

          Kommentar


          • #6
            Original geschrieben von rönee
            P.S. Mit register globals hat das nicht viel zu tun bei mit denn diese sind immer auf off geschaltet!
            Wenn du wirklich mittels $checkbox auf die Werte von Formularelemten mit dem Namen "checkbox[]" zugreifst, dann hat das sehr wohl etwas mit rg=on zu tun - oder du zeigst uns immer noch nicht den Code, den du wirklich verwendest.
            I don't believe in rebirth. Actually, I never did in my whole lives.

            Kommentar


            • #7
              P.S. Mit register globals hat das nicht viel zu tun bei mit denn diese sind immer auf off geschaltet!
              ich kaufe ein paar satztrennungszeichen. und verkaufe ein paar präpositionen.

              zu deinem problem: wenn du die checkboxen aus einem array generierst, so brauchst du auch für diese überprüfung dieses array. dieses läufst du durch und setzst die checked-option nur auf "checked", wenn das element in $_POST['checkbox'] aufzufinden ist.

              Kommentar


              • #8
                Ja, der Wert heisst im Original $checkbox_auswahl. - Sorry

                Kommentar


                • #9
                  Ja, der Satz war unglücklich, sollte heissen:

                  P.S. Mit register globals hat das bei mir nicht viel zu tun , denn diese sind immer auf off geschaltet!

                  Ja, Penizilin das habe ich ja versucht mit meinem Code

                  Kommentar


                  • #10
                    woher kommt $checkbox?

                    Kommentar


                    • #11
                      $checkbox_auswahl und es kommt aus dem Formular

                      wenn ich die Werte mittels echo ausgeben sind auch alle vorhanden!

                      Kommentar


                      • #12
                        dann stimmen diese zwei aussagen wohl nicht:
                        P.S. Mit register globals hat das bei mir nicht viel zu tun , denn diese sind immer auf off geschaltet!
                        und auf mein "... so brauchst du auch für diese überprüfung dieses array. ":
                        Ja, Penizilin das habe ich ja versucht mit meinem Code
                        du sollst das array durchlaufen, aus dem die checkboxen generiert werden.
                        und nicht irgendwas aus dem formular.

                        Kommentar


                        • #13
                          Aber mit foreach durchlaufe ich doch das array? Und warum machst Du kein konkretes Beispiel, in einbezug meines Codes? Ich weiss nicht was Du mienst oder ich glaube ich habe das ja schon so gemacht.

                          Und übrignes sind die register globals auf meinem Server auf off!!!!!!!!!

                          Kommentar


                          • #14
                            Aber mit foreach durchlaufe ich doch das array?
                            noch mal in zeitlupe:
                            ich sage:
                            wenn du die checkboxen aus einem array generierst, so brauchst du auch für diese überprüfung dieses array. dieses läufst du durch und setzst die checked-option nur auf "checked", wenn das element in $_POST['checkbox'] aufzufinden ist.
                            du sagst:
                            ... das habe ich ja versucht mit meinem Code
                            ich frage:
                            woher kommt $checkbox?
                            und du antwortest
                            ... es kommt aus dem Formular
                            noch mal: die foreach schleife soll das array durchlaufen, aus welchem die checkboxen ursprünglich stammen.

                            Kommentar


                            • #15
                              PHP-Code:
                              foreach ($checkboxes as $i => $c) {
                                  echo 
                              '<input type="checkbox" value="1" name="cb['.$i.']" '
                                       
                              .(isset($_POST['cb'][$i] ?  'checked' '').' /> '.$c

                              Kommentar

                              Lädt...
                              X