Je crée ces listes déroulantes en XML pour le plugin:
(Toutes les données proviennent de la table de base de données)
Je souhaite que lorsque je sélectionne la liste déroulante de la première catégorie, la seconde liste déroulante devrait figurer dans la catégorie sélectionnée lors du premier menu déroulant. Exemple:-
<field name="category- list"
type="sql"
default=""
label="Category"
sql_select="e.*"
sql_from="#__category AS e"
sql_group="category"
sql_order="e.cat_id ASC"
key_field="cat_id"
value_field="category"
multiple="true"/>
<field name="subcategory - list depend on category list"
default=""
type="sql"
label="SubCategory"
sql_select="e.*"
sql_from="#__subcategory AS e"
sql_group="subcategory"
sql_order="e.subcat_id ASC"
sql_filter="cat_id"
key_field="subcat_id"
value_field="subcategory"
multiple="true" />
Aidez-moi, s'il vous plaît, à atteindre cet objectif.
Ci-dessous, la structure du tableau.
CREATE TABLE category (
cat_id int(2) NOT NULL auto_increment,
category varchar(25) NOT NULL default '',
PRIMARY KEY (cat_id)
)
CREATE TABLE subcategory (
subcat_id int(3) NOT NULL AUTO_INCREMENT,
cat_id int(2) NOT NULL DEFAULT '0',
subcategory varchar(25) NOT NULL DEFAULT '',
UNIQUE KEY subcat_id (subcat_id)
)
Votre sql_filter
valeur doit correspondre au nom du champ auquel il fait référence. Depuis que vous avez cat_id
dans votre table de sous-catégorie qui fait référence à id dans category
, nommez votre champ parent comme cat_id
.
Votre champ de catégorie avec le nom cat_id.
<field name="cat_id"
type="sql"
default=""
label="Category"
sql_select="e.*"
sql_from="#__category AS e"
sql_group="category"
sql_order="e.cat_id ASC"
key_field="cat_id"
value_field="category"/>
Le champ de sous-catégorie peut être identique à ce que vous avez maintenant.
<field name="subcategory"
default=""
type="sql"
label="SubCategory"
sql_select="e.*"
sql_from="#__subcategory AS e"
sql_group="subcategory"
sql_order="e.subcat_id ASC"
sql_filter="cat_id"
key_field="subcat_id"
value_field="subcategory"/>