phpbar.de logo

Mailinglisten-Archive

[php] Daten in ListBox uebergeben

[php] Daten in ListBox uebergeben

Wolfgang Steinhauer wolf_(at)_earthway.org
Thu, 10 Feb 2000 10:34:27 +0100


Hallo Andreas,

danke fuer Deine Ausfuehrungen.
Das scheint mir allerdings ein wenig sehr kompliziert, zumal mein Provider
die
PHPLIB nicht installiert hat.

Eine Idee:
reicht es aus, wenn ich mir die db_mysql.inc aus der Lib besorge und sie
in das Verzeichnis lege ?

> <?php
> require( "db_mysql.inc" );      // wir arbeiten mit mySQL
>
> // dann implementieren wir eine nette Unterklasse, die
> // ueber unsere Datenbank alles notwendige weiss.
> // (das macht man mit der phplib immer so ...)
>
> class simslDB   extends DB_Sql
> {
>     var $Host = 'deinDatenbankhost';
>     var $Database = 'deineDatenbank';
>     var $User = 'deinDBUser';
>     var $Password = 'deinDBPasswort';
>
>     function
eOptionArray( 
>         $sql,           // SQL-Statement zum Lesen der Optionen
>         $calValue,      // Spaltenname fuer den 'value' der Optionen
>         $colOption,     // Spaltenname fuer die 'option' der Optionen
>         $nothingEntry = false,  // soll eine Default-Auswahl am Anfang
>                                 // der Auswahlliste auftauchen?
>         $nothingValue = "0",    // Default-Defaultwert
>         $nothingOption = "-- unbestimmt --" // Default-Defaultoption
>         )
>     {
>         $theOptions = array();
> 
>         $dbres = $this->query( $sql );
> 
>         if( $nothingEntry ){
>             $theOptions[] = array( "value" => "$nothingValue",
>                                    "label" => "$nothingOption" );
>         }
> 
>         while( $this->next_record() ){
>             $theOptions[] = array( "value" => $this->f( $colValue ),
>                                    "label" => $this->f( $colOption ) );
>         }
> 
>         return $theOptions;
> 
>     }   // makeOptionArray
> 
> }   // class simslDB
> 
> 
> An anderer Stelle reicht mir dann durch die Benutzung der
> oohForm-Klassen folgender Code fuer eine DB-basierte Auswahlliste:
> 
> class simslSearch
> {
>     [ ... ]
>     
>     var $sf;        // ein Fo
rmularobjekt
>     var $db;        // meine Datenbank-Objekt, ... wird an passender
>                     // Stelle initialisiert ...
>
>     function buildForm()
>     {
>         $this->sf = new form;
>
>         // ... so fuegt man einem OOHFormular ein neues Element
>         // hinzu ...
>
>         // erzeuge eine Dropdown-Auswahlliste aller Orte
>         $this->sf->add_element(
>             array(
>                 "name" => "sf_ort",     // Name des Form-Elements
>                 "type" => "select",     // ein Auswahl-Element
>                                         // Dropdown oder Listbox
>                 "size" => "1",          // aha, das wird eine
Dropdown-Liste
>                 "options" =>
>                     $this->db->makeOptionArray(
>                         "SELECT DISTINCT ortId, ortName
>                          FROM smlOrte ORDER BY ortname",
>                         "ortId", "ortName", "true",
>                         "0", "-- ganzes Muensterland --" ),
>                 "value" => $this->getFromSession( "sf_ort" ) ) );
>         [ ... ]
>
>
>     }   // buildForm
>
>
>     [ ... ]
>
>
>     function showForm()
>     {
>         [ ...]
>
>         $this->sf->show_element( "sf_ort" );
>
>         [ ...]
>     }   // showForm
>
> }   // class simslSearch
>
> Der erzeugte HTML-Code fuer die Dropdown-Liste sieht dann ca. so aus:
>
> <select name="sf_ort" size="1">
>     <option value="0">-- Münsterland --
>     <option value="1">Ahaus-Graes
>     <option value="2">Altenberge
>     <option value="3">Beelen
>     <option value="4">Billerbeck
>     <option value="5">Billerbeck-Beerlage
>     <option value="6">Borken
> </select>
>
> Das war jetzt ziemlich radikal zusammengeschnippselt und die Verwendung
> diverser 'Dritt-Bibliotheken' (eigentlich ist es ja nur die phplib) mag
> auf den ersten Blick abschrecken, ... aber meiner Erfahrung nach lohnt
> sich die Einarbeitung, ...
>
> > Aber ich komme nicht drauf wie das geht, obwohl es wahrscheinlich
> > wieder ganz einfach zu realisieren ist....
> stimmt. ;)
>
> Selbst, wenn Du es ganz 'manuell' zusammenbaust, musst Du doch
> eigentlich nur darauf achten, dass Du die Datenbank-Daten an die
> richtige Stelle des erzeugten HTML-Codes einsetzt.
> Wie HTML-Code fuer ein 'select'-Element aussehen kann, siehst Du ja
> oben.
> So wie meine Methode 'makeOptionArray' das Array mit den
> 'value'/'label'-Paaren aufbaut, koennte Deine Funktion auch direkt das
> passende HTML erzeugen ...

Liebe Gruesse,
wolf



php::bar PHP Wiki   -   Listenarchive