Bonjour,
Je suis en train de développer un composant. J'ai les fichiers suivants : contrats.php et contrats.html.php. Vous vous doutez que c'est pour la gestion de contrats.
Dans une fonction "creer" (dans contrats.php) je récupère la liste des catégories de produits
"select id_cat, nom_cat from #__win_categorie;"
et la liste des produits
"select id_prod, id_cat, titre_prod from #__win_produit;"
pour les transmettre à la fonction "creer" du fichier contrats.html.php
HTML_contrats::creer($pays, $categories, $produits );
où je voudrais proposer la liste des catégories dans une Listbox et en fonction du choix de la catégorie par l'utilisateur, afficher la liste des produits correspondants dans une deuxième Listbox.
Le code de la fonction "creer" du fichier contrats.html.php se présente comme suit :
Au début, j'ai mis un script Javascript...
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
|
function creer ($pays, $categories, $produits ){
global $database;
?>
<script>
var liste=new Array()
liste[0]="<select name='list_produits'><OPTION VALUE=0>---</OPTION></select>";
<% liste.movefirst
while not liste.eof
temp="<select name='list_produits'>"
<?php
$id_cat1 = "<script language='Javascript'> document.write(&liste(\"id_cat\")); </script>";
$query_produits = "select * from #__win_produit where id_cat=".$id_cat1;
$database->setQuery($query_produits);
$produits = $database->loadObjectList();
?>
set produit=<?php echo $produits ;?>;
while not produit.eof
temp=temp&"<OPTION VALUE="&produit("id_prod")&">"&produit("titre_prod")&"</option>"
produit.movenext
wend
temp= temp&"</select>"%>
liste[<%=liste("id_cat")%>]="<%=temp%>";
<%
liste.movenext
wend
%>
function changeliste() {
choix=document.monform.list_categories.value;
document.monform.list_produits.outerHTML=liste[choix];
}
</script> |
La liste des catégories :
1 2 3 4 5 6 7 8 9 10 11
|
<select id="listcat" name="list_categories" size="1" onChange='changeliste()'>
<option value="">Sélection de la catégorie</option>
<option value="">-----------------------------</option>
<?php
$count = count($categories);
for($i = 0; $i< $count ; $i++){
?><option value="<?php echo $categories[$i]->id_cat;?>"><?php echo $categories[$i]->nom_cat; ?></option><?php
}
?>
</select> |
Pour la liste des produits, j'ai un autre SELECT :
1 2 3 4
| <select id="listprod" name="list_produits" size="1">
<option value="">Sélection du produit</option>
<option value="">-----------------------------</option>
</select> |
Le problème est que ca ne marche pas, vous vous en doutiez
Auriez-vous une idée pour que ca marche ?
Merci.
Partager