Le 14.05.21 à 10:34, Jean-Christophe Villeneuve a écrit :
Oui, le principe parait simple mais ce sont les différentes saisies possibles qui m'intéressent.
Et l'exemple sur la page Formulaire de configuration avec le plugin Saisies - SPIP-Contrib est trop simpliste pour comprendre vraiment.
Imaginons que je veuille un formulaire avec juste 3 boutons radio
J'ai donc
* un formulaire plus général qui appelle ce formulaire avec
<div class="ajax">
\#FORMULAIRE\_CONFIGURER\_ESCAL\_FAVICON
</div>
* un fichier configurer_escal_favicon.html vide
* un fichier configurer_escal_favicon.php avec
<?php
if (!defined('_ECRIRE_INC_VERSION')) return;
function formulaires_configurer_escal_favicon_saisies_dist(){
// $saisies est un tableau décrivant les saisies à afficher dans le formulaire de configuration
$saisies = array(
array(
'saisie' => 'radio',
'options' => array(
'nom' => 'Option1',
'label' => '<:escal:favicon_choix1:>'
)
)
array(
'saisie' => 'radio',
'options' => array(
'nom' => 'Option2',
'label' => '<:escal:favicon_choix2:>'
)
)
array(
'saisie' => 'radio',
'options' => array(
'nom' => 'Option3',
'label' => '<:escal:favicon_choix3:>'
)
)
);
return $saisies;
}
Et ... rien ne s'affiche.
Et ensuite comment s'enregistre le choix fait dans la base données ?
JC
là tu a créé 3 saisies radio comprenant chacune 0 bouton radios, et non pas 1 saisie radio comprenant 3 boutons (je sais pas si tu a deja manipulé formidable ou l'interface graphique des champs extra, mais tu vois que quand tu veux ajouter des boutons radio tu choisi une seule fois "boutons radio", et ensuite tu précise le contenu).
Ce qu'il te faut c'est une saisie radio avec le detail des choix dans data
quelque chose comme
array(
'saisie' => 'radio',
'options' => array(
'nom' => 'favicon',
'data' => array(
'Option1' => '<:escal:favicon_choix1:>',
'Option1' => '<:escal:favicon_choix2:>',
'Option3' => '<:escal:favicon_choix3:>',
)
)
)
Ensuite une fois que la personne aura choisi le formulaire, la valeur choisie (donc soit Option1, soit Option2, soit Option3) sera disponible via #CONFIG{escal_favicon/favicon} (ou lire_config('escal_favicon/favicon').
La liste des saisies disponibles en standard avec les différentes options se trouve ici Référence des saisies - SPIP-Contrib
Par CONTRE, il ne faut pas faire un formulaire qui appelle un formulaire. Les formulaires imbriqués, c'est pas une bonne idée.
- Soit tu fais une une page qui appelle plusieurs formulaires
- Soit, sans doute le plus simple, y compris pour l'user, tu fais un formulaire global avec toutes les options possible.