Mehrere Checkboxen vorselektieren

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

  • Mehrere Checkboxen vorselektieren

    Huhu, stehe vor einem kleinen Problem:

    Habe ein Form mit diversen Select-Feldern, Textareas usw. welche mit DB Abfragen befüllt werden. Wählt man irgendeine Option wird das Form mit onChange='this.form.submit()' abgeschickt, ich hole mir die ausgewählten Optionen per $_POST und kann so die ausgewählten Optionen vorselektieren.

    Nun habe ich einige Checkboxen eingebaut, die mir etwas Probleme bereiten.

    PHP-Code:

       
    echo "<input name=check[] type=checkbox onChange='this.form.submit()' value=".$check['id'].">"
    So, das Ding gibt mir soviele Checkboxen aus wie Zeilen in der DB vorhanden sind.

    Mit implode bekomme ich alle ausgewählten Checkboxen angezeigt (nur wenn ich das onChange weglasse und nach dem Auswählen der einzelnen Checkboxen das Form per Hand submitte).

    Nun stehe ich an und weis nicht wie ich es hinbekomme, dass nachdem ich eine Checkbox wähle, das Form wie gehabt submitted wird und nach dem Laden der Seite direkt als checked markiert ist. Müsste halt beim Selektieren mehrerer Checkboxen hintereinander funktionieren.

    Würde mich über Hilfe freuen,
    mfg

  • #2
    Und wo ist dein Ansatz?
    Letzte Tage hast du dir erst lang und breit erklären lassen, wie man Einträge in Selectfeldern vorselektiert - und jetzt stehst du schon wieder bei einem sehr analogen Problem an, und hast nicht mehr ausser "ich bekomme es nicht hin" vorzuweisen?

    Überlege dir, worüber du die Checkboxen eindeutig identifizieren kannst - dann weisst du auch, wo du im HTML das für die Vorselektion zuständige Attribut auszugeben hast.
    I don't believe in rebirth. Actually, I never did in my whole lives.

    Kommentar


    • #3
      meine checkboxen kann ich über value identifizieren (=id) ... Die jeweiligen IDs bekomme ich, indem ich implode einsetze.

      Danach würde ich die ids die ich aus Implode bekomme mit der DB abgleichen und die, die gleich mit der DB sind als checked markieren.

      PHP-Code:

      $implode 
      implode(""$_POST['check']);
          if (isset(
      $implode) &&  $implode == "".$check['id'].""){
               
      $check " checked='checked'";
           }
           
           else {
               
      $check '';
          }

          echo 
      "<input name=check[] type=checkbox value=".$check['id'].$check>"
      so in der Art habe ichs versucht, ich glaube nur iwi nicht dass das mit dem Implode so hinhaut

      mfg

      Kommentar


      • #4
        Zitat von moepmann123 Beitrag anzeigen
        meine checkboxen kann ich über value identifizieren (=id) ... Die jeweiligen IDs bekomme ich, indem ich implode einsetze.
        Damit hast du, so du es in deinem Code einsetzt, alle ID direkt aneinandergehängt in einem String stehen - wenig sinnvoll.

        Danach würde ich die ids die ich aus Implode bekomme mit der DB abgleichen und die, die gleich mit der DB sind als checked markieren.
        Ja, aber einzeln in einer Schleife.
        I don't believe in rebirth. Actually, I never did in my whole lives.

        Kommentar


        • #5
          sollte ich mit implode arbeiten oder mir das array in der schleife mit $....[0] $....[1] usw. ausgeben lassen?

          Kommentar


          • #6
            Zitat von moepmann123 Beitrag anzeigen
            sollte ich mit implode arbeiten oder mir das array in der schleife mit $....[0] $....[1] usw. ausgeben lassen?
            Letzteres.

            Peter
            Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
            Meine Seite

            Kommentar


            • #7
              PHP-Code:
              $check $_POST['check'];

              for(
              $count 0$count 20$count++) {
                 
                  if (isset(
              $check[$count]) &&  $check[$count] == "".$check['id'].""){
                       
              $check " checked='checked'";
                       
                   }
                   
                   else {
                       
              $check '';
                  }

              so würde ich anfangen, was mache ich jetzt jedoch mit der checkbox? in die for-Schleife kann ich sie schlecht packen.

              Kommentar


              • #8
                Zitat von moepmann123 Beitrag anzeigen
                was mache ich jetzt jedoch mit der checkbox? in die for-Schleife kann ich sie schlecht packen.
                Warum - ich dachte, du willst mehrere Checkboxen erzeugen?

                Dass du das in einer Schleife machst, sollte doch wohl eher der Normalfall als die Ausnahme sein.
                I don't believe in rebirth. Actually, I never did in my whole lives.

                Kommentar


                • #9
                  // edit: Denkfehler, kurz was testen ^^
                  Zuletzt geändert von moepmann123; 14.07.2009, 20:00.

                  Kommentar


                  • #10
                    PHP-Code:
                    for($count 0$count $_POST['check']; $count++) 
                    Ist eine pisselige Schleife und genau das, was du brauchst.

                    Peter
                    Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
                    Meine Seite

                    Kommentar


                    • #11
                      PHP-Code:
                       while($check2 mysql_fetch_assoc($ergebnis_check)) { 

                      $check $_POST['check']; 

                      for(
                      $count 0$count 20$count++) { 
                          
                          if (isset(
                      $check[$count]) &&  $check[$count] == "".$check2['id'].""){ 
                               
                      $check " checked='checked'"
                                
                           } 
                            
                           else { 
                               
                      $check ''
                          } 

                      echo 
                      "<input onChange='this.form.submit()' name=check[] type=checkbox value=".$check['id'].$check>";   
                      }   


                      Gekürzte Version. Nun bekomme ich x-Zeilen mit Checkboxen (je nachdem wie viele Zeilen es in der DB sind) mit jeweils 20 Checkboxen pro Zeile...iwi auch klar, komme jedoch nicht drauf wie ichs richtig machen könnte ~~
                      Zuletzt geändert von moepmann123; 14.07.2009, 21:43.

                      Kommentar


                      • #12
                        Die for-Schleife außerhalb der while-Schleife! Und wofür benötigst du Letztere hier überhaupt?

                        Peter
                        Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
                        Meine Seite

                        Kommentar


                        • #13
                          Zitat von Kropff Beitrag anzeigen
                          Die for-Schleife außerhalb der while-Schleife! Und wofür benötigst du Letztere hier überhaupt?

                          Peter
                          um meine Daten aus der db zu bekommen/auszugeben

                          u wenn ich die for schleife aus der while schleife pack komm ich iwi nicht mehr an mein

                          PHP-Code:
                           if (isset($check[$count]) &&  $check[$count] == "".$check2['id'].""){ 
                          [COLOR=#000000][COLOR=#006600][/COLOR][COLOR=#0000CC]$check2[/COLOR][COLOR=#006600][[/COLOR][COLOR=#CC0000]'id'[/COLOR][COLOR=#006600]] [/COLOR][/COLOR]ran. Oder irre ich mich?
                          Zuletzt geändert von moepmann123; 14.07.2009, 21:43.

                          Kommentar


                          • #14
                            sorry fürs pushen!

                            jmd nen Tipp?

                            Kommentar


                            • #15
                              was willst du nun haben?
                              PHP-Code:
                              echo "<input onChange='this.form.submit()' name=check[] type=checkbox value=".$check['id'].$check>"
                              oder
                              PHP-Code:
                              echo "<input onChange='this.form.submit()' name=check[] type=checkbox value=".$check2['id'].$check>"
                              eines von beiden brauchst du nur, also ist entweder die while-schleife überflüssig wie ein kropf oder die for-schleife. entscheide dich.

                              peter
                              Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
                              Meine Seite

                              Kommentar

                              Lädt...
                              X