Hallo zusammen,
ich mache grade meine ersten Gehversuche in der Joomla1.5 API
und stehe nun vor dem Problem Comboboxen im Backend zu erstellen.
Meine bisherigen Recherchen zu diesem Thema brachten leider nur so
sinnvolle Hinweise wie "sieh dir an wie das in anderen komponenten gemacht wird".
Auf diese Idee war ich auch schon gekommen musste aber feststellen dass Komponenten
nicht unbedingt auf Anfängerlesbarkeit optimiert sind.
Aus diesem Grunde suche ich jetzt nach einem Hinweis zur Lösung des
unten beschriebenen Problems, oder einem tutorial das sich ausreichend ausführlich
mit Comboboxen, Listen, etc. im backend befasst.
soweit klar, eine Textarea in der wert eingetragen werden soll. An einigen StellenCode:<form action="index.php" method="post" name="adminForm" id="adminForm"> <div class="col100"> <fieldset class="adminform"> <legend><?php echo JText::_( 'Details' ); ?></legend> <table class="admintable"> <!-- jcb code --> <tr> <td width="100" align="right" class="key"> <label for="name"> <?php echo JText::_( 'name' ); ?>: </label> </td> <td> <input class="text_area" type="text" name="name" id="name" size="32" maxlength="40" value="<?php echo $this->data->name;?>" /> </td> </tr> ...
wäre eine Combobox mit einer Auswahl erlaubter Parameter aber erheblich sinnvoller.
In meiner Not bastelte ich mir also eine Klasse deren Methode combobox($query) den
Code einer Combobox zu der übergebenen query zurück liefert.
erweitere ich mein formular also umPHP-Code:<?php defined('_JEXEC') or die('Restricted access');
jimport( 'joomla.database.database' );?>
<?php
class sql2menu {
private $query='select * from dual';
private $selected="";
private $db = null;
private $results=null;
function __construct() {
$this->db = JFactory::getDBO();
}
function statement() {
echo $this->query;
}
function query() {
$this->db->setQuery($this->query, 0, 10);
$this->results=$this->db->loadObjectList();
}
function combobox($input) {
$this->query= $input;
$this->query();
$rValue="<input type=\"text\" name=\"beispiel\" id=\"beispiel\" class=\"combobox\" value=\"".$this->selected."\" />";
$rValue.=" <ul id=\"combobox-beispiel\" style=\"display:none;\">";
foreach ($this->results as $resultitem) {
$rValue.="<li>".$resultitem->name."</li>";
}
$rValue.=" </ul>";
return $rValue;
}
}
?>
erhalte ich tatsächlich eine Combobox mit sinnvollen Werten.Code:... <tr> <td width="100" align="right" class="key"> <label for="ligaID"> <?php echo JText::_( 'Wert2' ); ?>: </label> </td> <td> <?php $comboClass = new sql2menu; $combo=$comboClass->combobox("select * from #__Tabelle2"); JHtml::_('behavior.combobox'); echo $combo; ?> </td> </tr> ...
Nun gibt es aber Fälle in denen mehrer Comboboxen im gleichen Formular benötigt werden.
Wenn ich aber mehrere Instanzen der Combobox im gleichen formular habe
(jede mit anderen Variablennamen und anderen queries) enthalten alle boxen die gleichen Werte. Vermutlich benutze ich das JHtml nicht richtig, aber dieser Gedanke hat mir bei der Lösung des Problems bisher nicht weiter geholfen.
Für sachdienliche Hinweise wäre ich hochgradig dankbar


LinkBack URL
About LinkBacks
Zitieren
Lesezeichen