web-dev-qa-db-fra.com

Comment puis-je sauvegarder plusieurs valeurs sélectionnées dans une liste?

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.

enter image description here 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.

3
Break the Law

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.

2
Break the Law