J'ai un formulaire avec le XML généré dynamiquement et par dynamiquement, il a été créé par programme pendant la fonction getForm. Je veux enregistrer la valeur que j'ai sélectionnée en tant que paire clé: valeur à stocker dans une colonne de table:
<field name ="frequency" type="list"
label="Frequency"
description="Frequency of sending report subscribed."
option_on ="Yes"
option_off ="Yes"
multiple="true"
>
Maintenant, il permet la sélection multiple, mais lors de l'enregistrement du formulaire, les valeurs que j'ai sélectionnées ne reflétaient pas.
J'ai ceci comme référence:
https://stackoverflow.com/questions/2407284/how-to-get-multiple-selected-values-of-select-box-in-php
Mais mon objectif est de sauvegarder les valeurs sélectionnées.
Quel pourrait être le problème?
L'image ci-dessus affiche le champ personnalisé que j'ai créé. Cependant, ceux que j'ai sélectionnés "un" et "trois" ne sont pas enregistrés dans la base de données.
J'ai pu résoudre ce problème avec le ff. code:
$mydata = JFactory::getApplication()->input->get('jform', array(), 'array');
J'ai découvert que je n'ai pas besoin de vérifier le champ s'il s'agit d'un tableau ou non, j'ai créé un tableau vide
$fils[$new_filter['name']] = $mydata[$new_filter['name']];
d'après le code ci-dessus, voici l'interprétation:
$fils['frequency'] = $mydata['frequency']
la variable $ mydata ['frequency'] contient automatiquement les multiples valeurs que j'ai sélectionnées dans la liste déroulante et qui ont un attribut multiple = "true" dans le fichier XML.