[PHP] ComboBox auslesen?

Dieses Thema im Forum "Webentwicklung" wurde erstellt von ibot, 28. April 2009 .

Schlagworte:
  1. 28. April 2009
    ComboBox auslesen?

    Also ich habe eine Tabelle in der eine ComboBox ist:

    PHP:
                <table width="300" border="0">
                    <tr>
                        <td>
                            <h5>Sortieren nach:</h5>
                        </td>
                        <td>
                            <select name="tut">
                                <option>Originaltitel</option>
                                <option>Deutscher Titel</option>
                                <option>FSK</option>
                                <option>Version</option>
                                <option>Erschienen am</option>
                            </select>
                        </td>
                        <td>
                            <?php
                            $hallo
    = $_POST [ 'tut' ];
                            echo 
    $hallo ;
                            
    ?>
                        </td>
                    </tr>
                </table>
    Zum testen wollte ich mir den Wert der gerade in der ComboBox ausgewählt ist einfach eine Zeile weiter ausgeben lassen.
    Nur leider klappt das nicht. Ich habe es auch schon versucht in dem ich das ganze in eine form gesetzt habe:

    PHP:
    <form name="Formular" method="POST" action="main_exemplar.php">
            <table width="300" border="0">
                <tr>
                    <td>
                        <h5>Sortieren nach:</h5>
                    </td>
                    <td>
                        <select name="tut">
                            <option>Originaltitel</option>
                            <option>Deutscher Titel</option>
                            <option>FSK</option>
                            <option>Version</option>
                            <option>Erschienen am</option>
                        </select>
                    </td>
                    <td>
                        <?php
                        $hallo
    = $_POST [ 'tut' ];
                        echo 
    $hallo ;
                        
    ?>
                    </td>
                    <td>
                        <input type = "submit" value="prüfen">
                    </td>
                </tr>
            </table>
        </form>
    Da funktioniert es sobald ich auf den Button klicke.
    Das will ich aber nicht. Er soll gleich zu Programmstart den Wert auslesen ohne das man erst auf den Button klicken muss.

    Wie kann ich das realisieren?
     
  2. 28. April 2009
    AW: ComboBox auslesen?

    mit php garnicht, wär ein fall für javascript.
    es sei denn du generierst die auswahlbox ebenfalls mit php, oder du gibst eine standardauswahl an:

    PHP:
    <? php
        $hallo 
    = (!empty( $_POST [ 'tut' ])) ?  $_POST [ 'tut' ] :  'default' ;
        echo 
    $hallo ;
    ?>
     
  3. 28. April 2009
    AW: ComboBox auslesen?

    Wie würde das ganze dann mit Javascript aussehen?

    Wäre es mit Javascript auch möglich so eine Art sofort aktualisierung vorzunehmen?

    Also wenn der Benutzer ein anderes Element aus der ComboBox auswählt das sich dann sofort auch die Ausgabe ändert?
     
  4. 28. April 2009
    AW: ComboBox auslesen?

    HTML:
    <form name="test">
    <select onChange="document.forms['test'].elements['out'].value = this.value" name="tut">
     <option>Originaltitel</option>
     <option>Deutscher Titel</option>
     <option>FSK</option>
     <option>Version</option>
     <option>Erschienen am</option>
     </select>
    
    <input type="text" name="out">
    </form>
    Geht sicher iwie eleganter, aber ich kann eigtl kein JS
     
  5. 28. April 2009
    AW: ComboBox auslesen?

    Würde den Code gerne mal testen nur es kommt immer Syntax Error.

    Ich kann den Fehler nur irgendwie nich finden.
     
  6. 29. April 2009
    AW: ComboBox auslesen?

    Einen Syntaxerror kann ich zwar auch nicht finden, aber auch wenn der Firefox das problemlos mitmacht, ist es wirklich nicht nett das value auszulesen, wenn keines der OPTION-Elemente ein value hat!

    Eher in die Richtung (unabhängig von elegant oder nicht):
    Code:
    <form name="test"> 
    <select onChange="document.forms['test'].elements['out'].value = this.selectedIndex>=0?this.options[this.selectedIndex].text:''" name="tut">
    ...
    Gruß Resus
     
  7. 29. April 2009
    AW: ComboBox auslesen?

    Naja ich hab es so versucht in meine html Seite einzubinden:
    Dachte erst es wär Javascript gewesen drum hat ichs falsch.

    PHP:
            < form name = "test"
               <
    select onChange = "document.forms['test'].elements['out'].value = this.value"  name = "tut" >  
                  <
    option > Originaltitel </ option >  
                  <
    option > Deutscher Titel </ option >  
                  <
    option > FSK </ option >  
                  <
    option > Version </ option >  
                  <
    option > Erschienen am </ option >  
               </
    select
               <
    input type = "text"  name = "out"
            </
    form >
    Und wie kann ich dann jetzt auf den Wert zugreifen?
    Habs mit:

    PHP:
    <? php
         
    echo  $out ;
    ?>
    versucht, will aber nicht.
     
  8. 29. April 2009
    AW: ComboBox auslesen?

    es wird von javascript in das Textfeld geschrieben....

    Klingt logisch weil das keine PHP Variable ist...
     
  9. 29. April 2009
    AW: ComboBox auslesen?

    Hmm irgendwie steh ich auf dem Schlau.

    Könntest du das genauer erklären.

    Danke!
     
  10. 29. April 2009
    AW: ComboBox auslesen?

    HTML:
    <form name="Formular" method="POST" action="main_exemplar.php">
     <table width="300" border="0">
     <tr>
     <td>
     <h5>Sortieren nach:</h5>
     </td>
     <td>
     <select onChange="document.forms['Formular'].elements['out'].value = this.value" name="tut"> 
     <option>Originaltitel</option> 
     <option>Deutscher Titel</option> 
     <option>FSK</option> 
     <option>Version</option> 
     <option>Erschienen am</option> 
     </select> 
    
     </td>
     <td>
     <input type="text" name="out"> 
     </td>
     <td>
     <input type = "submit" value="prüfen">
     </td>
     </tr>
     </table>
     </form>
    Mal an dein Layout angepasst.. Erklärung folgt..

    HTML:
     <select onChange="document.forms['Formular'].elements['out'].value = this.value" name="tut"> 
    
    onChange => "Wenn Änderung"
    document => Diese Datei (Dokument)
    forms => Formulare
    ['Formular'] => Dein Formularname
    element => Element
    ['out'] => Name des zu beschreibenden Elementes
    .value => Wert

    this => "Dieses" Also diese Combobox
    value => Wert.. => Ausgewählter Wert...

    Um das Textfeld nit so sichtbar zu machen, kannst es zB durch diesen Code ersetzen:
    HTML:
     <input type="text" name="out" style="border: 0px; background:none;"> 
    border: 0px => Setzt Rand auf 0 Pixel
    Background: none => Keine Hintergrundfarbe
     
  11. 29. April 2009
    AW: ComboBox auslesen?

    Hi,
    afaik kannst du jeder option auch noch das Attribut value hinzufügen und da deine Variable reinschreiben, oder irre ich mich da jetzt?
    Dann kannst du dir den ganzen JS-Kram auch sparen.

    PHP:
    <form name="Formular" method="POST" action="">
            <table width="300" border="0">
                <tr>
                    <td>
                        <h5>Sortieren nach:</h5>
                    </td>
                    <td>
                        <select name="tut">
                            <option value="Originaltitel">Originaltitel</option>
                            <option value="Deutscher Titel">Deutscher Titel</option>
                            <option value="FSK">FSK</option>
                            <option value="Version">Version</option>
                            <option value="Erschienen am">Erschienen am</option>
                        </select>
                    </td>
                    <td>
                        <?php
                        $hallo
    = $_POST [ 'tut' ];
                        echo 
    $hallo ;
                        
    ?>
                    </td>
                    <td>
                        <input type = "submit" value="prüfen">
                    </td>
                </tr>
            </table>
        </form>
    Funktionieren tuts bei mir perfekt.
     
  12. 29. April 2009
    Ok besten dank jetzt hab ichs geschnallt.
    Ich muss mir quasi den Wert dann aus dem Formular holen.

    Ist es nun auch möglich das sobald der Nutzer in der ComboBox etwas ändert auch die Tabelle aktualisiert wird?

    Ich habs mal so versucht, will aber nicht klappen.

    Es soll, sobald an der ComboBox eine andere Auswahl getroffen wurde, sich auch die Tabelle aktualisieren.
    Das Problem besteht darin den derzeitig ausgewählen Wert aus der ComboBox in die Variable $hallo zu bekommen.

    Hat jemand eine Lösung?

    HTML:
    <html>
     <head>
     <script>
     function test2(){
     <?php
     $hallo = $_POST['out'];
    
     $banane = ocilogon("sdf","sdf","fbw");
     $versuch = ociparse($banane,"select orgtitel as \"Originaltitel\",
     dt_titel as \"Deutscher Titel\",
     fsk, erschdat
     from dvd_exemplar order by $hallo");
     ociexecute($versuch);
     $spanz=ocinumcols($versuch);
    
     print "<table class=\"table\">";
     for ($i=1;$i<=$spanz;$i++) {
     $sname = ocicolumnname($versuch,$i);
     print "<th class=\"th\"><b>$sname</b></th>";
     }
     while (ocifetch($versuch)) {
     print "<tr>";
    
     for ($i=1;$i<=$spanz;$i++) {
     $wert=ociresult($versuch,$i);
     print "<td class=\"td\">$wert</td>";
     }
     print "</tr>";
     }
     print "</table>";
     ?>
     }
     </script>
     </head>
     <body>
    
     <form name="Formular" method="POST" action="main_exemplar.php">
     <table width="300" border="0">
     <tr>
     <td>
     <h5>Sortieren nach:</h5>
     </td>
     <td>
     <select onChange="test2()" name="out">
     <option value="orgtitel">Originaltitel</option>
     <option value="dt_titel">Deutscher Titel</option>
     <option value="fsk">FSK</option>
     <option value="version">Version</option>
     <option value="erschdat">Erschienen am</option>
     </select>
     </td>
     </tr>
     </table>
     </form>
     </body>
    </html>
    
     
  13. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.