web-dev-qa-db-fra.com

La deuxième liste déroulante est modifiée après la sélection de la première liste déroulante dans Joomla XML

Je crée ces listes déroulantes en XML pour le plugin:

  • catégorie déroulante multi-sélection,
  • liste déroulante multi-sélection

(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)
)
1
Rakesh Singh

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"/>
1
Nagarjun