Mailinglisten-Archive |
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"> </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