web-dev-qa-db-fra.com

Les champs personnalisés de Joomla 3.4 nomment un comportement étrange dans JForm

Je travaille pour le composant FE avec la forme pour permettre à l'utilisateur de définir certaines valeurs pour filtrer les données de la base de données (ex: select, text). Une fois que l'utilisateur a soumis, ces champs doivent afficher les valeurs que l'utilisateur a sélectionnées avant l'envoi.

J'ai créé des champs personnalisés et des fichiers XML de formulaire. J'ai réalisé que les champs personnalisés dans le même JForm qui étend JFormField conservent le même nom que celui défini dans myfield.php, mais que les champs personnalisés qui étend JFormFieldList deviennent avec une partie de tableau jform (par exemple, jform [myfield]); ils apparaissent donc dans le champ POST dans le cadre du tableau jfrom.

Y at-il une solution de contournement pour faire le même nommage (avec ou sans jform) pour tous les champs personnalisés (JFormField, JFormFieldList, ...) et les lire tous en utilisant JInput comme champs uniques ou faisant partie d’un tableau?

Merci!

1
CodeBy

Eh bien, vous pouvez y aller et remplacer votre fonction custom_field getInput () afin que votre nom de champ soit sans partie jfrom, mais ce n’est pas bon. Ce dont vous avez besoin est juste d’assurer que vous utilisez $ this-> value dans votre custom_field.php car il s’agit de la valeur que cet utilisateur a envoyée.

si ce n'est pas le cas - il doit y avoir un problème avec populateState () et getForm () dans votre fichier model.php

1
Alexandr

Peut-être devriez-vous jeter un œil sur DPFields qui peut facilement être intégré à votre composant. Il fait tout le travail pour vous.

0
Laoneo