Forum : AllgemeinesTitel : Frage zu theme_form Formularen© 2004-2012 www.exv2.de http://www.exv2.de
URL dieser Diskussion
http://www.exv2.de/modules/newbb_plus/viewtopic.php?topic_id=4022&forum=8
|
molli :
| 28.02.2008 23:06 |
Hallo zusammen,
ich hab da mal wieder eine Frage an Euch. Und zwar ist es bzw. wie ist es möglich, die Formulare in exv2, welche über die theme_form laufen, in "normale" html-form-Tags zu fassen? Könnte mir das jemand an diesem Beispiel erklären?
$feld_cat = $form->f_select(_MD_CATEGORYC, "cid", "", 1, inc_function("makeCnameSelectArray", array("mydownloads_cat","title","title","cid","pid"))); $form->addElement($feld_cat);
im Voraus schon mal Vielen Dank! |
|
|
bama :
| 28.02.2008 23:43 |
Hi molly,
das kann man nicht, den mit html kannst du nicht aus einer Datenbank lesen, deshalb bedient man sich hier: php
du könntest mit html natürlich ein Selectfeld erstellen, und alle Kategorien aus mydownloads eintragen, jedoch wenn du eine neue Kategorie haben möchstest, müsstest du jedes Mal dein Selectfeld händisch ändern. Das glaube ich ist nicht Sinn der Sache |
|
|
molli :
| 01.03.2008 00:06 |
Hallo Hans,
erstmals Danke für deine schnelle Antwort! Das form-Tag ist also schon in PHP eingebunden, nur ist mir nicht klar, wie ich den array einbinden kann/soll/muß. Ich dachte da an folgenden Ansatz:
Code:echo "<form ACTION='test.php' NAME='action' method='post'>";
echo " <select class='select' name='action'>"; $catarray = inc_function("makeCnameSelectArray", array("mydownloads_cat","title","title","cid","pid"))); $result = $db->query("SELECT title,title, cid, pid FROM ".$db->prefix("mydownloads_cat")." WHERE cid "); while ( list($title, $title, $cid, $pid) = $db->fetch_row($result) ) { echo "<option value='$catarray'>$title</option>"; } echo "</select></td><td valign='top'> <input type='hidden' NAME='action' value='result' /> <INPUT TYPE='submit' class='button2' value='".GO."'></td></form>";
Das ganze funktioniert auch insoweit, dass zumindest die Kategorien angezeigt werden. Das Problem liegt jetzt noch zum einen, wie gesagt, beim array, der nicht übergeben wird und zum anderen werden die zwei Bindestriche vor den Unterkategorien nicht angezeigt. Hintergrund der Geschichte ist, dass ich div. Formulare gern vierspaltig gestalten möchte und nicht wie in der theme_form festgelegt nur zweispaltig.
Gruß Oli |
|
|
bama :
| 02.03.2008 00:08 |
Hi Oli, erstmal gleich, in xhtml (eXV² ab Version 2.0.6) muss das alles klein geschreiben werden ACTION='test.php' NAME='action'
Code:<?php /** $Id: test_selectfeld.php, V 1.0 - 2008/03/01 23:57:00 bama Exp $ eXV2 Content Management System Link: http://www.exv2.de */ if ( !defined('XOOPS_MAINFILE_INCLUDED') ) {include("mainfile.php");} inc_xoops_header(); inc_class_form("form", "EXOOPS_FORM_PRODUCER_INCLUDED", "exoops_form_producer.php"); echo "<form action='test.php' name='action' method='post'>"; echo "<table border='0' cellpadding='2' cellspacing='0'>"; $temp = ExoopsFormProducer::f_select("", "cid", (isset($cid) ? $cid : 0), 1, array("0" => "----")); $temp->addOptionArray(inc_function("makeCnameSelectArray", array("mydownloads_cat","title","title","cid","pid", 0, 0, 0))); echo "<tr><td align='right'>Kategorie</td><td>".$temp->render()."</td></tr>"; echo "</table>"; inc_xoops_footer();
?> |
|
|
molli :
| 02.03.2008 22:18 |
Der Hans, der kann's!!!
Ich Danke Dir tausend Mal.
Abschließend hätte ich da allerdings noch eine klitzekleine Frage und zwar bei einem Formular müsste ich noch ein setExtra "onchange" mit einfügen, und so:
Code:echo "<form action='test.php' name='action' method='post'>"; echo "<table border='0' cellpadding='2' cellspacing='0'>";
$temp = ExoopsFormProducer::f_hidden("op",$op); $temp = ExoopsFormProducer::f_select("", "cid", (isset($cid) ? $cid : 0), 1, array("0" => "----")); $temp->addOptionArray(inc_function("makeCnameSelectArray", array("mydownloads_cat","title","title","cid","pid", 0, 0, 0))); $temp->setExtra("onchange='op.value="input"; javascript:document.test.submit();'"); echo "<tr><td align='right'>Kategorie</td><td>".$temp->render()."</td></tr>"; echo "</table>";
funktioniert's nicht! Verzeih mir mein NOB-Dasein und nochmals vielen Dank für Deine Mühe.
Gruß Oli
PS: Code bitte mit markieren!
[ Ge&auml;ndert von bama an 02.03.2008 22:41 ] |
|
|
bama :
| 02.03.2008 22:45 |
was ich so sehe, ungetestet, müsste das anstatt
javascript:document.test.submit();
javascript:document.action.submit();
heissen, das form hat name action dann würde ich niemals name='action' machen, denn manche Browser mögen das nicht |
|
|
|