<form> <input type="checkbox" name="item[]" value="1" /> <input type="checkbox" name="item[]" value="2" /> <input type="checkbox" name="item[]" value="3" /> </form> <?php $app = JFactory::getApplication(); $items = $_POST['type']; // This works but is not Joomla wise... $items = $app->input->getArray(array('type_ids')); // Tried multiple ways but can't get it to work. ?> What should be the correct way to load all form items into an array $items?
3 Réponses :
Si vous voulez juste que tous les articles, la voie Joomla serait: où le deuxième paramètre serait votre valeur par défaut si "élément" n'est pas défini. Mais notez que cela récupère les paramètres via le nom, tout comme d'habitude. p> la même chose à l'aide de la plate-forme Joomla 11.1 et ci-dessus serait: p> $items = $app->input->get('item', array(), 'ARRAY');
Et bien non! Le tableau sera simplement sûr de recevoir un objet de tableau PHP valide. Mais il ne nettoie pas réellement l'entrée. Vous devez le faire séparément.
Si vous utilisez JForm pour effectuer des formulaires, vous devez extraire les données affichées de la matrice JForm.
pour les composants natifs 3.x strong> Le code regardera à l'intérieur du contrôleur comme: p> où Avis de sécurité: strong> p> p> Array - tente de convertir l'entrée en une matrice. Comme p> Le tableau de données lui-même n'est pas désinfecté. p> p> $ ceci-> entrée code> est l'objet d'entrée, hérité de
jControllerbase code>. P> P> > pour les composants utilisant des classes MVC héritées fortes>, le code sera le suivant: p>
LOL, ce n'est pas ce que je voulais dire (merci à), c'était l'évident [ Bit.ly/1dyyyia] , mais ce que je voulais dire portait sur la partie "de la partie natif des composants de la 3.x", il semble y avoir aucune mention de cela ..
Pour les composants utilisant le hérité Le code suivant fonctionne (version 3.3):
Pourquoi ne pas utiliser les cases à cocher si vous voulez le tableau?