Form Action und Select-Box variabel füllen

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

  • Form Action und Select-Box variabel füllen

    Hallo Leute,

    nachdem ich als Neuling heute so schnell und funktionierend Hilfe bekommen habe, kommt der php-Appetit und damit auch die Fragen.

    Folgendes Problem:


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


    Das funktioniert ja. Aber ich sollte die Anzahl der "<option"-Zeilen variabel haben. Also z.B wenn $plnamewww[5]=leer ist, sollte diese Zeile nicht geschrieben werden. Weil das schaut ja blöde aus, wenn die Box ewig hoch ist, und nichts drin steht. Ich habe immer so meine Probleme in Verbindung mit "echo '<form action".

    Schon mal vielen Dank
    Erwin

  • #2
    hi, also wenn du die options als array in $plnamewww vorliegen hast, dann musst du die html-option-tags deines formulares dynamisch generieren.

    eine schleife ist dabei ganz hilfreich foreach

    Kommentar


    • #3
      Hi 3DMax,

      mein Problem ist ja aber, dass ich das in Verbindung mit der FormAction
      nicht hinkriege.

      In dem erweiterten Beispiel unten klappt es nämlich nicht. Die Box wird immer auch mit diesem Wert gefüllt. Aber es sei mir verziehen, ich bin ja blutiger php-Anfänger.


      Erwin
      PHP-Code:
      $plnamewww[4]="998";

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

                      if ($plnamewww[4]=="999")
                          {
                          <option ' 
      .$matsel[4]. ' value="3">'.$plnamewww[4].'</option>
                          }

                  </select> 
      EDIT:
      php-tags sponsored by kropff
      Zuletzt geändert von Kropff; 29.07.2008, 19:16.

      Kommentar


      • #4
        und jtzt schau dir mal genau die farben an. dann siehst du, wo es hakt. außerdem solltest du dich zuerst mal mit einer vernünftigen fehlersuche beschäftigen.

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

        Kommentar


        • #5
          Original geschrieben von erwin_lier
          mein Problem ist ja aber, dass ich das in Verbindung mit der FormAction
          nicht hinkriege.
          und was ist genau das problem?
          also erst formularanfang ausgeben, dann schleife, dann formularende.
          dein beispiel kann ich irgendwie nicht nachvollziehen.

          ich denke du sucht soetwas :
          PHP-Code:
          // Optionen für Drop-Down-List
          $options  = array('huhu''hallo''blub');

          // HTML-Teile - könnten aber auch direkt mit echo ausgegeben werden
          $html = array();

          // Formular beginnen, könnte auch im HTML-Teil stehen
          $html[] = '<form action="test.php" method="GET" name="Formular1" id="Formular1">';
          $html[] = '<select name="matname" id="matname" onchange="this.form.submit();">';

          // Options dynamisch generieren
          foreach($options as $option_value => $option_text)
          {
              
          $html[] = '<option value="'.$option_value.'">'.$option_text.'</option>';
          }

          // Formular beenden
          $html[] = '</select>';
          $html[] = '</form>';

          // Formular ausgeben
          echo implode("\n"$html); 

          Kommentar


          • #6
            @3dmax

            warum ein array und implode? eine einfache zeichenkettenverknüpfung tut es doch genau so.
            PHP-Code:
            $options  = array('huhu''hallo''blub');
            $html '<form action="test.php" method="GET" name="Formular1" id="Formular1">';
            $html .= '<select name="matname" id="matname" onchange="this.form.submit();">';

            foreach(
            $options as $option_value => $option_text)
            {
                
            $html .= '<option value="'.$option_value.'">'.$option_text.'</option>';
            }

            $html .= '</select>';
            $html .= '</form>';

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

            Kommentar


            • #7
              Original geschrieben von Kropff
              warum ein array und implode? eine einfache zeichenkettenverknüpfung tut es doch genau so.
              geht natürlich auch.

              aber so hat man "schöneren" html-quelltext (zeilenumbruch) und "\n" ist sonst zu aufwändig wegen des quotens, finde ich.

              Kommentar


              • #8
                und "\n" ist sonst zu aufwändig wegen des quotens
                OffTopic:
                dafür hat man einen shortcut in seinem editor

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

                Kommentar


                • #9
                  Original geschrieben von Kropff
                  OffTopic:
                  dafür hat man einen shortcut in seinem editor
                  ich meinte jetzt eher, dass ich html immer in single quotes schreibe und die html-attribute in double-quotes. und denn kann man ja \n nicht verwenden - verstehst du.

                  Kommentar


                  • #10
                    ich doch auch:
                    PHP-Code:
                    $html .= '<option value="'.$option_value.'">'.$option_text.'</option>'."\n"
                    und für das ."\n" hab ich einen shortcut.

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

                    Kommentar


                    • #11
                      Hallo 3DMAX,
                      Hallo Kropff,

                      mann, das hat ja mit etwas auf meine Kenntnisse umbauen wieder schnell geklappt.

                      Aber, bitte, das müßt ihr verstehen, als php-Neuling liest man Bücher und probiert und sucht im WWW ewig und 3 Tage, und wenn man dann nach einiger Zeit etwas Wissen angespart hat, kann man über die Anfänge nur noch lachen. Deshalb bitte Nachsicht und endlose Geduld mit den Neuen.


                      Vielen Tausend Dank
                      Erwin

                      Kommentar

                      Lädt...
                      X