[Sessions] Radiobox,Auswahllisten in Formularen

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

  • [Sessions] Radiobox,Auswahllisten in Formularen

    Hallo Forum,

    ich habe ein Problem in meinem Formular, was die Auswertung von Radiobox in Sessions anbelangt. Und zwar habe ich schon überall gesucht, hab auch einige Lösungsvorschläge dazu gefunden, komme jedoch immer noch nicht weiter (meinem Fall spezifisch). Ich bin ein Neuling was PHP angeht und habe zuvor auch nicht viel mit Sessions gearbeitet, somit bitte ich um Geduld und Verständnis.

    Kommen wir zur Funktionsweise:

    Das Formular beinhaltet Felder. Diese Felder werden durch Checkboxen,Radioboxen oder auch Auswahllisten unterstützt.
    Die Sessions hierbei, sollen die vom Nutzer eingegebenen Daten (sei es Selektieren,Checken oder Schreiben) speichern und zum nötigen Zeitpunkt wieder ausgeben. Das erspart dem User die wiederholte Eingabe seiner Daten. Bei Checkboxen lief das bisher ohne Probleme (in meinem Script), nur bei Radioboxen und Auswahllisten komme ich nicht mehr weiter.

    Mein Script:
    PHP-Code:
    <!-- Index.php (Layout) -->
    <?PHP
      session_start
    ();//hier wird die Session gestartet (übergreifend für das ganze Script)
      
    ERROR_REPORTING(E_ALL);
    ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de" lang="de">

    <head>
        <meta http-equiv="content-type" content="text/html; charset=utf-8" />
        <link rel="stylesheet" href="style/style.css" type="text/css" />
        <script src="http://code.jquery.com/jquery-latest.js"></script>
          <script type="text/javascript" src="style/script/jquery.validate.js"></script>
        <title>Formular auf mehreren Seiten</title>
        <script><!-- für Jquery Validation -->
            $(document).ready(function(){
                 $("#commentForm").validate();
             });
          </script>
    </head>
        <body>
            <div align="center">
                <div id="top_alternative">
                <!--<div class="logo"></div>-->
                </div>
                <div id="content_head">
                    <h1>Formulare</h1>
                </div>
                <div id="content_main">
                    <div align="left">
    <!-- ab hier werden die Formulare in den Container geladen und ausgegeben -->                    
     <?PHP
                        $includeDir 
    ".".DIRECTORY_SEPARATOR."forms".DIRECTORY_SEPARATOR;
                        
    $includeDefault $includeDir."form0.php";
                        
                        if(isset(
    $_GET['page']) && !empty($_GET['page']))
                        {
                        
                            
    $_GET['page'] = str_replace("\0"''$_GET['page']);
                            
    $includeFile basename(realpath($includeDir.$_GET['page'].".php"));
                            
    $includePath $includeDir.$includeFile;
                            
                            if(!empty(
    $includeFile) && file_exists($includePath)) 
                            {
                                include(
    $includePath);
                            }
                            else 
                            {
                            include(
    $includeDefault);
                            }
            
                        } 
                        else 
                        {
                            include(
    $includeDefault);
                        }
                        
    ?>
                <div id="footer">
                    <a href="#">Impressum</a> | 
                    <a href="#">Kontakt</a> 
                </div>
                </div>
            </div>
        </body>
    </html>
    Ein Formular:
    PHP-Code:
    <?php
    if(isset($_POST['form1']['Geschlecht'])){
    $_SESSION['Geschlecht'] = $_POST['Geschlecht']; // entweder feld1 oder feld2 
    }
    $checked="";
    if(isset(
    $_SESSION['form1']['Geschlecht']) == "feld1"
    {
        
    $checked='checked="checked"';
    }
    $checked2=""
    if(isset(
    $_SESSION['form1']['Geschlecht']) == "feld2"
    {
        
    $checked2='checked="checked"';
    }
    $checked3 = isset($_SESSION['form1']['feld3']) ? 'checked="checked"' '';
    ?>
    <?php 
    if(!empty($_GET['error_checkboxes1'])): ?>
            <div style="color: red; padding: 5px; border: 1px solid red;font-weight: bold;">
                Bitte Feld ausfüllen.
            </div>    
        <?php endif; ?>    
                
        <form method="post" action="forms/formhandler.php?s=1">    
            <fieldset>
                <h2>1. Sind Sie Ärztin oder Arzt?</h2>
                    <div style="margin-left:10px;">
                        <input type="radio"  name="Geschlecht" value="feld1" id="one" <?php if($_SESSION['Geschlecht'] == 'feld1') echo 'checked="checked"'?> />
                        <label for="one">Arzt</label><br />
                    
                        <input type="radio" name="Geschlecht" id="two" value="feld2" <?php echo $checked2?> />
                        <label for="two">Ärztin</label>
                    </div>
            </fieldset>
                    <div class="content_split"></div>
    </fieldset>
                    <div class="content_split"></div>
                        
                    <p>
                        <div style="margin-left:10px;">
                            <input type="submit" class="btn_forward" name="submit" value="" />
                        </div>    
                    </p>
        </form>
    Formhandler (verwaltet die Validation der Eingaben und Sessions):
    PHP-Code:
    <?php
        
    switch($_GET['s']) {
            case 
    '0':
                
    handlePage0();
                break;    
            case 
    '1':
                
    handlePage1();
                break;    
    }
        
        function 
    handlePage1()
    {
        
    $valid false;
            
            if(isset(
    $_POST['submit'])) 
            {
                if(!empty(
    $_POST['feld1']) or !empty($_POST['form1']['feld2'] ))
    {
                    unset(
    $_SESSION['form1']);
                    foreach(
    $_POST as $k => $v) {
                        
    $_SESSION['form1'][$k] = $v;
                    }
                    
    $valid true;
                }
            }
            
            if(
    $valid) {
                 
                
    header('Location:../index.php?page=form1_1') ;    
            } else {
                
    header('Location:../index.php?page=form1&error_checkboxes1=error') ;    
            }    
    }
    ?>

  • #2
    Keiner eine Antwort?...

    Kommentar


    • #3
      Zitat von ahlexbetta Beitrag anzeigen
      Keiner eine Antwort?...
      Du keine vernünftige Frage …?

      „Ich komme nicht mehr weiter“ zusammen mit hingeklatschtem Code ist keine solche.

      Also beschreibe bitte dein Problem nachvollziehbar.
      I don't believe in rebirth. Actually, I never did in my whole lives.

      Kommentar


      • #4
        ...zudem Crossposting: [Sessions] Radiobox,Auswahllisten in Formularen - PHP Forum: phpforum.de

        mfg streuner
        Erst wenn der letzte FTP Server kostenpflichtig, der letzte GNU-Sourcecode verkauft, der letzte Algorithmus patentiert,
        der letzte Netzknoten verkommerzialisert ist, werdet Ihr merken, dass Geld nicht von alleine programmiert.

        "Diese Software verdient die 3 großen GGG: --- Gesehen --- Gelacht --- Gelöscht ---"

        Kommentar

        Lädt...
        X