web-dev-qa-db-fra.com

Faire une demande ajax sur submit sur la page register avec des champs personnalisés

Je suis sur Joomla! 3.8.3, sur le formulaire d'inscription, j'ai ajouté des champs personnalisés. Je souhaite que lorsque l'utilisateur envoie le formulaire, coche un champ personnalisé pour vérifier si la valeur entrée se trouve dans la liste des valeurs d'un tableau spécifique.

Est-il possible de le faire?

Merci d'avance

1
user3533235

Oui, il est possible de vérifier une valeur avec ajax.

Vous pouvez désactiver la fonctionnalité par défaut du formulaire d'envoi, par exemple (à l'aide de jQuery):

$('FORM_ELEMENT').submit(function(e){
  //dont submit the form
  e.preventDefault();

  //if valid url_to_ajax_function should return true or false for example {"found": true}
  $.get("url_to_ajax_function?variable=value", function(data){
     //check if return ajax request is true
     if(data.found){
         //found, so submit the form
         $(this).submit()
     }else {
         alert('value not found');  
     }
  });
});

notez qu'il s'agit d'un code factice, utilisé ici uniquement pour montrer que cela est techniquement possible, mais c'est l'appel comme vous pouvez le faire. C'est certainement possible, mais certaines connaissances de jQuery sont indispensables.

Un autre moyen efficace de vérifier si l'utilisateur a un champ valide soumis (par exemple, lorsqu'un utilisateur a désactivé JavaScript, donc une sauvegarde supplémentaire), un plugin pourrait être créé. Vous devez utiliser l'observateur onUserAfterSave(). Documentaire Joomla pour créer un plugin avec onUserAfterSave () .

J'espère que cela vous aidera dans la bonne direction!

1
David Kooijman

C'est possible en développant un champ personnalisé.

https://docs.joomla.org/J3.x:Adding_custom_fields

Dans la sortie de votre champ personnalisé, restituez JavaScript qui lit et envoie une demande Ajax pour vérifier les valeurs.

Si vous souhaitez ajouter un champ personnalisé à un composant principal, tel que Joomla! Articles, vous devez créer un plug-in et ajouter un remplacement de modèle à la vue de votre composant principal. Voir la documentation ci-dessous.

https://docs.joomla.org/Adding_custom_fields_to_core_components_using_a_plugin

1
Nagarjun