Page 1 sur 1

pear hierselect

Posté : 28 avr. 2007, 15:52
par Invité
Bonjour,
J'ai trouvé ce tuto quickform hierselect pour faire des listes déroulantes avec les résultats d'une requete:
$form = new HTML_QuickForm('example');

$form->setDefaults(array('test' => array('4','15')));
$sel =& $form->addElement('hierselect', 'test', 'Test:', null, '/');

$mainOptions = $db->getAssoc('select pkparent, par_desc from parent');

$result = $db->query("select fk_parent, pkchild, chi_desc from child");
while ($result->fetchInto($row)) {
    $secOptions[$row[0]][$row[1]] = $row[2];
}
// Using setMainOptions and setSecOptions is now deprecated 
// use setOptions.

$sel->setOptions(array($mainOptions, $secOptions));

$form->display();
Il n'y a pas la structure de la bdd dans l'exemple et j'ai du mal à comprendre comment faire les requetes.
Dans mon cas, j'ai une liste de marques de voitures, et des modèles pour chaque marque.
Quand on choisit la marque dans la première liste, la deuxième affiche les modèles correspondants.
J'ai fait ceci mais ca ne marche pas :
$form = new HTML_QuickForm('example');

$sel =& $form->addElement('hierselect', 'test', 'Test:', null, '/');

$mainOptions = $db->getAssoc("SELECT DISTINCT V_MARQUE FROM occasions");

$result = $db->query("SELECT DISTINCT MODELE FROM occasions");
while ($result->fetchInto($row)) {
    $secOptions[$row[0]][$row[1]] = $row[2];
}
// Using setMainOptions and setSecOptions is now deprecated 
// use setOptions.

$sel->setOptions(array($mainOptions, $secOptions));

Posté : 28 avr. 2007, 22:58
par Sékiltoyai
Tu obtiens une erreur ?
Qu'est ce que ca donne exactement ?