web-dev-qa-db-fra.com

Module pour afficher les options déroulantes de la table de base de données

J'ai un module qui a des listes déroulantes. J'ai une table dans la base de données, qui est associée à un composant, auquel le module est associé.

Si la table de la base de données des composants contient des données, comment puis-je obtenir que le module affiche les données dans une liste déroulante et si sélectionné, il affichera les résultats sur une page séparée?

Par exemple, j'ai les listes déroulantes suivantes dans le module:

    <label for="airport">Airport:</label>
        <select id="airport" name="airport">
            <option selected="selected" value="A">Any Airport</option>
            <option value="LGW">Gatwick</option>
            <option value="MAN">Manchester</option>
        </select>

Dans la base de données, il y a une table appelée "dep", elle contient soit MAN, soit LGW. Si l'utilisateur sélectionne LGW dans la liste déroulante puis clique sur recherche, je souhaite que le composant soit chargé. toutes les données de la base de données contenant LGW dans la table.

J'ai défini la requête de base de données suivante dans le module, mais comment puis-je l'utiliser pour afficher les données dans les listes déroulantes, puis afficher les résultats corrects?

$db = JFactory::getDbo();

$query = $db->getQuery(true);

$query->select($db->quoteName(array('mykey', 'hotelName', 'resortName', 'dep',     'startDate', 'sellingPrice')));
$query->from($db->quoteName('#__availability'));
$query->order('ordering ASC');


$db->setQuery($query);

$results = $db->loadObjectList();
1
RustyJoomla

Vous pouvez remplir le de comme ci-dessous:

<label for="airport">Airport:</label>
<select id="airport" name="airport">
    <option selected="selected" value="A">Any Airport</option>
<?php
foreach ($results as $result)
{
    echo "<option value='{$result->dep}'>{$result->dep}</option>";
}
?>
</select>

Ensuite, traitez le formulaire régulièrement ou par une méthode AJAX.

3
Farahmand