<form action und <select von Neuling

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

  • <form action und <select von Neuling

    Hallo Leute,

    mußte mich neu in PHP einarbeiten. Ist schon doch etwas verschieden zu VB, C+und sonstigen. Wahrscheinlich ganz einfach, aber ich verzweifele schon.

    Ich habe eine Select-Box und möchte nach dem Change-Event erkennen welche Auswahl getroffen ist.
    Mein Problem ist, dass die Variable SESSION[gewaehlt] am "Ende" das gewählte Element in der Box erkennt, aber diese Variable bei "Start" immer um einen Click nachhingt. Also wenn ich erst den 2.Eintrag gewählt habe und dann den 3. wird in der Startvariable "2" angezeigt.

    Ich müßte aber erkennen, was ich aktuell gewählt habe, weil dadurch eine weitere Box gefüllt werden soll.
    Ich will etwas machen, vergleichbar mit "ein Artikel in der Farbe braun ist in Größe M L Und XL" lieferbar, eine andere Farbe aber auch in anderen Größen

    Danke für eure Mühe aus dem sonnigen Bayern
    Erwin

    echo "Start=" .$_SESSION['gewaehlt'];

    if ($_SESSION['gewaehlt']=="1")
    {
    $selected[1]=" selected";
    $selected[2]=" ";
    $selected[3]=" ";
    }

    if ($_SESSION['gewaehlt']=="2")
    {
    $selected[1]=" ";
    $selected[2]=" selected";
    $selected[3]=" ";
    }

    if ($_SESSION['gewaehlt']=="3")
    {
    $selected[1]=" ";
    $selected[2]=" ";
    $selected[3]=" selected";
    }

    echo '<form action="test.php" method="GET" name="Formular1" id="Formular1">
    <select name="matname" id="matname" onchange="this.form.submit();">
    <option ' .$selected[1]. ' value="1">'.$plname[1].'</option>
    <option ' .$selected[2]. ' value="2">'.$plname[2].'</option>
    <option ' .$selected[3]. ' value="3">'.$plname[3].'</option>
    </select>
    </form>' ;


    $_SESSION['gewaehlt'] =($_GET['matname']);

    echo "ende=" .$_SESSION['gewaehlt'] ;

  • #2
    Hallo und willkommen,

    für die Zukunft bitte php-Tags nutzen...

    Zu deinem Problem: Das liegt daran, dass du erst die Optionen in den If-schleifen überprüfst und setzt, und später aber erst den neuen Wert in die Session übernimmst..

    D.h.: Dein = $_GET muss nach oben..

    mfg

    Kommentar


    • #3
      Original geschrieben von Blackgreetz
      If-schleifen
      OffTopic:
      *klugscheiß* Gibt es nicht!!!
      signed oder unsigned... das ist hier die Frage

      Kommentar


      • #4
        Hallo Blackgreetz,

        wegen der php-Tags: Ich habe da schon so viel hin und herkopiert, deshalb sind nicht mehr die offiziellen vorhanden.

        Aber, und das ist wichtiger: kleine Ursache - große Wirkung.


        Es funzt.

        Vielen Dank
        Erwin

        Kommentar


        • #5
          Damit man hier nicht über nicht existierende if-Schleifen diskutieren muss, das Ganze geht viel einfacher ohne:
          PHP-Code:
          echo "Start = " $_GET['matname'];
          $_SESSION['gewaehlt'] = $_GET['matname'];
           
          $selected = array(=> ''=> ''=> '');
          $selected[$_SESSION['gewaehlt']] = "selected='selected'";


          echo 
          "<form action='test.php' method='GET' name='Formular1' id='Formular1'>
                   <select name='matname' id='matname' onchange='this.form.submit();'>
                       <option 
          $selected[1] value='1'>$plname[1]</option>
                       <option 
          $selected[2] value='2'>$plname[2]</option>
                       <option 
          $selected[3] value='3'>$plname[3]</option>
                   </select>
               </form>" 
          ;

          echo 
          "Ende = " $_SESSION['gewaehlt'] ; 
          Und as mit den PHP-Tags ist entweder eine faule Ausrede, oder überhaupt Faulheit.
          Gruss
          H2O

          Kommentar


          • #6
            @erwin_lier:

            Ich meinte mit php-Tags -> [ php] und [/ php] ...
            Sodass es für uns lesbar ist...

            @case: Schande über mein Haupt

            Kommentar

            Lädt...
            X