Checkbox-(Logik)-Problem

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

  • Checkbox-(Logik)-Problem

    Hi

    Mein Problem ist nicht ganz einfach zu erklären, aber ich versuche es mal:

    Ich habe mir eine Formular-Klasse geschrieben, u.a. kommt da eine Checkboxfunktion vor. Das sieht so aus:

    PHP-Code:
    function addCheckbox($name,$title,$help,$value,$default="") {
       
    $_POST[$name] ? $checked "checked" $checked "";
       
    $content "<input name='$name' type='checkbox' id='$name' value='$value$this->handler $checked$value";
       
    $this->form .= add2form($this->template['3COL'],$content,$title,$help);

    die Funktion add2form ist nicht wichtig, da sie nur das Formularelement in das Design-Template einfügt (ebenfalls $title und $help)

    $name ist der Name und die ID der Checkbox
    $value ist der Wert, den die Checkbox bei Aktivierung annimmt
    $default ist der Wert, den die Checkbox beim erzeugen des Formular-Objekts hat

    Der Code, der den Default-Wert setzt ist noch nicht eingebaut.

    So, jetzt kommt das Problem:

    Ich habe einen JS-EventHandler ($this->handler) drin, der bei Bedarf das Formular neu läd (wenn der Benutzer z.B. die Checkbox aktiviert hat und danach weitere spezielle Formularelemente eingeblendet werden sollen).

    Allerdings würde nach dem Neuladen bei FALSE immer der Default-Wert benutzt werden und nicht der POST-Wert der Checkbox (logisch, da die Checkbox ja keinen FALSE-Wert annehmen kann). Ich müsste also checken, ob die POST-Variable existiert (mach ich ja bereits) und wenn nicht dann die $default benutzen. Was aber, wenn das Formular schon neulgeladen wurde und die Checkbox=FALSE ist?
    Anders ausgedrückt, es soll nur beim ersten Laden der Default-Wert benutzt werden und ab dann immer der POST-Wert bis das Formular abgeschickt wird (nicht neugeladen).
    Nochmal anders ausgedrückt: Wenn die Checkbox deaktivert ist und die Seite neugeladen wurde, kann ich nicht überprüfen, ob die Deaktivierung vom POST oder der $default-Variable kam.

    Ich hoffe, ihr könnt mir da helfen...danke schonmal im vorraus

    Viele Grüße

    Frank
    Zuletzt geändert von LDSign; 24.02.2003, 12:24.

  • #2
    hi,

    wie wärs, wenn du beim ersten laden ein
    hidden-field mit einer var implementierst
    und das als schlüssel verwendest?

    mal so als idee.

    gruss wurzel
    Kissolino.com

    Kommentar


    • #3
      Hallo

      Danke für Deine Antwort. Wie meinst Du das genau "beim ersten Laden"? Ich kann ja aus oben genannten Gründen nicht unterscheiden, obs das erste Laden war. Eine ähnliche Idee mit dem Hidden-Field hatte ich auch schon...einfach die gleiche ID nehmen und immer auf den Wert FALSE setzen. Doch es sieht so aus, dass die Checkbox keine Priorität hat...der Wert ist dann immer FALSE. Was gibt es sonst noch für Möglichkeiten, der Checkbox den Wert FALSE zu geben, wenn sie nicht aktiviert ist (vielleicht über Umwege oder Tricks)?

      Viele Grüße

      Frank

      Kommentar


      • #4
        ... das ist ja schon ein umweg

        PHP-Code:
        if(isset($schluessel))
        {
          
        //offenbar ein reload
         
        print "<input type=hidden name=schluessel value=$schluessel>";
        }
        else
        {
         
        // offenbar erstaufruf des forms
         
        print "<input type=hidden name=schluessel value=1>";

        wenn ich mich nicht täusche, sollte das eindeutig sein
        oder ich hab die frage nicht verstanden

        gruss wurzel
        Kissolino.com

        Kommentar

        Lädt...
        X