Dans un formulaire BreezingForms, j'ai une adresse de facturation et une de livraison. Est-il possible, au cas où les deux sont identiques, de copier les valeurs de l'adresse de facturation vers celles de l'adresse de livraison en cochant une case ?
Niveau :
Facile
Version BF minimale requise :
BreezingForms Lite
Compatibilité Joomla! 4/5 :
✅
Préparation
Pour commencer, préparez vos champs pour l'adresse de facturation dans une section nommée Adresse de facturation, p.ex.
- Section 1 : Adresse de facturation
- Prénom Nom → nommé nom_a
- Rue, nr. → nommé street_a
- Code postal → nommé cp_a
- Ville → nommé city_a
- Pays → nommé country_a
Cliquez du bouton droit sur le titre de la Section 1 et choisissez Copier.
Sélectionnez la page (niveau supérieur) et du clic droit, sélectionnez Coller
Votre page présente maintenant deux sections avec chacune leurs champs identiques…
Modifier le nom de la section en Adresse de livraison et les champs de la même manière que dans la section 1 en remplaçant _a par _b parce que deux éléments ne peuvent avoir le même nom et afin de les différencier.
Revenez dans votre Section 1 et insérez-y un élément de type Case à cocher labellisé Adresse de livraison identique à l'adresse de facturation et nommé copy p.ex.
Passez dans les propriétés avancées de cet élément et dans le bas de cette partie, cochez le bouton personnalisé de la zone Script d'action.
Comme type d'action, sélectionnez Clic et dans la zone de script, cliquez Créer le code framework validez le popup afin d'insérer le code générique de cette action.
Dans cette zone de code, après la partie case 'click':, insérez le code suivant :
if (element.checked) {
ff_getElementByName('name_b').value = ff_getElementByName('name_a').value;
ff_getElementByName('street_b').value = ff_getElementByName('street_a').value;
ff_getElementByName('cp_b').value = ff_getElementByName('cp_a').value;
ff_getElementByName('city_b').value = ff_getElementByName('city_a').value;
ff_getElementByName('country_b').value = ff_getElementByName('country_a').value;
}
else {
ff_getElementByName('name_b').value = '';
ff_getElementByName('street_b').value = '';
ff_getElementByName('cp_b').value = '';
ff_getElementByName('city_b').value = '';
ff_getElementByName('country_b').value = '';
}
Vous devez donc obtenir un code complet comme celui-ci :
function ff_copy_action(element, action)
{
switch (action) {
case 'click':
if (element.checked) {
ff_getElementByName('name_b').value = ff_getElementByName('name_a').value;
ff_getElementByName('street_b').value = ff_getElementByName('street_a').value;
ff_getElementByName('cp_b').value = ff_getElementByName('cp_a').value;
ff_getElementByName('city_b').value = ff_getElementByName('city_a').value;
ff_getElementByName('country_b').value = ff_getElementByName('country_a').value;
}
else {
ff_getElementByName('name_b').value = '';
ff_getElementByName('street_b').value = '';
ff_getElementByName('cp_b').value = '';
ff_getElementByName('city_b').value = '';
ff_getElementByName('country_b').value = '';
}
break;
default:;
} // switch
} // ff_copy_action
Il reste à enregistrer les modifications apportées à la case à cocher suivi d'un enregistrement du formulaire et du test de fonctionnement.
Complétez votre formulaire au besoin et terminez par la publication ou la mise en place…