Hallo lieber Forum,
ich habe ein Problem mit ein Produkt Filter dropdownbox, dass ich Euch vorstellen wollte. Die dropdownbox wird mit den Werte aus eine MySQL Abfrage bevölkert. Alles ist schön, aber kurz später werden die Dropdownbox Einträge nicht mehr angezeigt, bis man die Cache im Backend löscht (Backend > System > Cache > Cache entleeren > All). Habt Ihr eine Idee warum so ist?
Die Dropdown wird in http://MySite/de/search angezeigt mit dem Code,
<div class="control-group span6">
<label for="prod_type">Typ</label>
{form params='id="prod_type"' type=select name=prod_type class='span12 select-block' default=$default_type value=$type_data}
</div>
Der Query findet in class.search.php statt mit folgende function:
public function getTypeList() {
global $db,$language;
$prod_types = array();
$query = "SELECT products_type AS id, COUNT(*) AS items,
CONCAT(products_type, ' (',COUNT(*),')') AS text
FROM xt_products_description
WHERE language_code='" . $_SESSION['selected_language'] . "'
GROUP BY products_type
ORDER BY products_type;";
$rc = $db->Execute($query);
if ($rc->RecordCount()>0)
{
while (!$rc->EOF) {
$prod_types[] = $rc->fields;
$rc->MoveNext();
}
}
$rc->Close();
$prod_types = array_slice($prod_types,2);
return $prod_types;
}
Und in search.php wird die function aufgerufen
$type_list = $search->getTypeList();
$type_list = array_merge($tmp_data, $type_list)
und die variablen werden an dem Template übergeben.
Es gibt wahrscheinlich effizienteren Wege, aber so funktioniert es und ich würde gern wissen warum dieses Cache Problem auftaucht.
Viele Grüße und ich bedanke mich herzlich für jeden Hinweis.
Joao