phpbar.de logo

Mailinglisten-Archive

[php] PHPLIB und templates

[php] PHPLIB und templates

Frank Schnaue php_(at)_phpcenter.de
Tue, 11 Sep 2001 19:39:42 +0200


Hallo liebe Liste,
ich komme leider mit den dynamischen Blöcken , die die template.inc -
Klasse bietet, nicht zurecht.
Ich hoffe, einer/eine von Euch hat Lust, den nachfolgenden Code mal
durchzusehen und mir eine Hilfestellung zu geben.
Die gängigen Tutorials bieten leider auch keine Hilfe.

Die Struktur ist folgendermaßen:
1.    Beim Aufruf der Datei  wird ein erstes select - Feld mit Einträgen
aus einer DB gefüllt
2.    Nach der Auswahl eines Eintrages aus diesem Feld erscheint erst
ein zweites select - Feld, welches gleichfalls aus der DB gefüllt wir.

das erste feld habe ich komplett mit templates
umgesetzt.({first_select})
Das zweite muß mit dynamischen Blöcken umgesetzt werden, da dieser Teil
in der html - Datei nicht zu Anfang sichtbar sein darf.
Hier die beiden Dateien:

------------------first.html----------------------------------------
        <TITLE>{seitentitel}</TITLE>
</head>
<body topmargin="0" leftmargin="0" marginwidth="0" marginheight="0"
bgcolor="#FFFFFF">
<table width="770" border="0" cellspacing="0" cellpadding="0">
   <tr>
     <td width="267" height="8"></td>
     <td colspan="3" width="503" height="8"></td>
   </tr>
   <tr>
     <td width="267" height="56"><img src="./images/Logo.gif"
width="267" height="56" align="right"></td>
     <td colspan="3" valign="bottom" align="right" width="503"
class="txt">
     </td>
   </tr>
   <tr>
     <td align="right" height="24"><img src="./images/Nav1-left.gif"
width="267" height="24" border="0"></td>
     <td colspan="3" height="24" width="503" align="left" valign="top">

        <form action="index.php" method="post" target="">

              {first_select}
     </td>
        </form>
   </tr>
   <!-- BEGIN table_template -->

   <tr><td colspan="4" height="3"></td></tr>
<tr>
   <form action="concerts.php3" method="post" target="main">
         <td width="267" height="24">&nbsp;</td>
         <td colspan="2" align="right"><img src="images/Nav2-left.gif"
width="206" height="24" border="0"></td>
         <td align="left" width="297" height="24" valign="top">

         {second_select}

         </td>
   </form>
</tr>

   <!-- END table_template -->

   </table>
</body>
-------------------------------ENDE DER HTML
-DATEI--------------------------------




-------------------------------index.php-------------------------------------------

<?
    require("db_mysql.inc.php"); // DB_SQL
    require("local.inc.php");   // DB_WAHL
    include ("template.inc.php"); // phplib-template einbinden
    $db = new DB_WAHL;
    $tpl = new Template();
//----------------erstes Auswahlfeld
Beginn-----------------------------//
    $tpl-> set_file (array(
                       "feld" => "first.html"));
    $tpl-> set_var ("seitentitel","Live-music-database from Frank
Schnaue");
    $tpl-> set_block('feld','table_template','table_tab');

        $query = "SELECT auswahl_id,auswahl_01 FROM auswahl";
        $query .= " ORDER BY auswahl_id;";
        $db->query($query);
        $option_block  = "<select name=\"SEL_FELD\" value=\"$SEL_FELD\"
size=\"1\" style='width:160px;'  width='160' onChange='submit()'>";
        $option_block  .= "<option value=\"nothing\">Please select ...
</option>";
        $option_block .= "<option
value=\"nothing\">-------------------------</option>";
        // mit einer Schleife die select-box aus der Datenbank füllen
    while ($db->next_record()){
        //aktueller Wert der Spalte 'auswahl_id'
        $wert = $db->f('auswahl_id');
        //aktueller Wert der Spalte 'auswahl_01'
        $wert_01 = $db->f('auswahl_01');

           if($wert == $SEL_FELD) {
                $option_block .= "<option value=" .$wert." selected
>".$wert_01."</option>";

           }else{
                $option_block .= "<option value="
.$wert.">".$wert_01."</option>";
           }
    }
        $option_block  .= "</select>";
    //$option_block wird "first_select" in html-Datei zugewiesen
    $tpl-> set_var ("first_select", $option_block);


//----------------erstes Auswahlfeld Ende-----------------------------//

        $query1 = "SELECT * FROM auswahl";
        $query1 .= " WHERE auswahl_id LIKE '$SEL_FELD';";
        $db->query($query1);

   if($db->next_record()){
   //wenn der 3. Eintrag ausgewählt wird ...
       if($db->f('auswahl_id')==3){
        echo "bla";

  /*
   $bla = "<tr><td colspan=\"4\" height=\"3\"></td></tr><tr>";
   $bla .= "<form action=\"index.php\" method=\"post\"
target=\"main\">";
   $bla .= "<td width=\"267\" height=\"24\"></td>";
   $bla .= "<td colspan=\"2\" align=\"right\"><img
src=\"images/Nav2-left.gif\" width=\"206\" height=\"24\"
border=\"0\"></td>";
   $bla .= "<td align=\"left\" width=\"297\" height=\"24\"
valign=\"top\">";
  */
        // Doppelte Einträge in der Datenbank finden
           $query2 = "SELECT artist, count(artist) FROM daten";
           $query2 .= " GROUP BY artist ORDER BY artist_index";
           $query2 .= ";";
           // Die SQL-Anweisung ausführen
           $db->query($query2);
                 $option_block1  = "<select name=\"SEL_FELD1\"
value=\"$SEL_FELD1\" size=\"1\" style='width:297px;'
                                                        width='297'
onChange='submit()'>";
                 $option_block1  .= "<option value=\"nothing\">Please
select ... </option>";
                 $option_block1 .= "<option
value=\"nothing\">-------------------------</option>";
           // mit einer Schleife die select-box aus der Datenbank füllen

          while ($db->next_record()){
                 //aktueller Wert der Spalte 'auswahl_id'
                 $wert_02 = $db->f(0);
                 //count der Spalte 'auswahl_id'
                 $wert_03 = $db->f(1);
                if($wert_02 == $SEL_FELD1) {
                   $option_block1 .= "<option value=" .$wert_02."
selected >".$wert_02."</option>";
                }else{
                   $option_block1 .= '<option value="' . $wert_02 .
'">'.$wert_02 .' ('
                     . $wert_03 . ")</option>";
                }
           }
                $option_block1  .= "</select>";

           $tpl-> set_var ("second_select", $option_block1);
           $tpl-> parse ('table_tab','table_template',true);

      }
  }
         $tpl-> parse ("output",array("feld"));
         $tpl-> p ("output"); // ausgabe der html datei

?>
-------------------------------ENDE DER
DATEI--------------------------------

Wie setze ich das table_template um?
Vielen Dank für die Mühe und liebe Grüße
Frank



php::bar PHP Wiki   -   Listenarchive