Bonjour,
N’arrivant pas à ajouter un traitement à un formulaire Formidable je teste une autre piste via les formulaires CVT.
On a un formulaire qui dans lequel on a une saisie (créée par nous) qui liste un ensemble de « produits » … chaque input a comme « name » un truc du genre « produits[4][] » ou « 4 » est l’id du produit, la « value » correspondante étant la quantité choisie pour ce produit.
On a essayé pas mal de chose pour récupérer ces valeurs dans la fonction « charger() » des formulaires CVT, sans succès jusqu’ici …
Par ex:
Evidemment si je suis là c’est que ça ne marche pas J’ai essayé pas mal de syntaxes, avec des [], des [][], et toutes les combinaisons intermédiaires, je me demandais s’il y avait quelque part un exemple avec quelque chose d’un peu plus complexe que l’exemple du formulaire contact avec de simples input (ci-dessus ça marche évidemment pour email, nom, prenom, …). Merci d’avance pour les pistes éventuelles.
Pierre
Bonjour,
ça me parait normal que tu ne récupères pas les champs formidable de façon générique puisqu’ils ne sont pas nommés « email » ou « prenom » mais « input_4 » et 'input_12" !
Je ne comprends pas trop ce que tu essayes de faire. Il me semble que tu prends le problème par la fin, et que tu devrais au moins apprendre/comprendre les mécanismes de base de l’API « CVT » des formulaires de SPIP pour savoir ce que tu fais. Tout ce chapitre :
La fonction charger() sert à 1) déclarer les champs « autorisés », et 2) pré remplir les valeurs de départ uniquement si pertinent. Donc déjà le concept de « récupérer ces valeurs dans la fonction charger() » je ne comprends pas trop qui que quoi pourquoi, c’est plutôt dans verifier() et traiter() qu’on récupère les valeurs ensuite.
La fonction traiter() sert à faire le traitement final si ya aucune erreur possible avant. Et dans ce cas bah tu récupères les valeurs des « name » des champs HTML. Donc si ton name=truc c’est « produits », tu le récupères avec… _request('produits') (fonction de base de SPIP qu’il est rigoureusement obligatoire de connaitre dès lors qu’on touche au PHP) :
Euh rasta ? Il me semble que PierrOt parle de formulaire dans formidable là …
Oups, non, c’est vrai, PierrOt parle de CVT, bah alors PierrOt on fvet vendre sur internet et on sait pas se servir de CVT, c’est comme dit Rasta pas très compliqué, la doc est très bien faite !
@touti : Non rasta a raison, il s’agit de formulaire CVT, pas Formidable (que je mentionnais juste car c’était une autre piste pour moi.) Non on essaye de concocter un formulaire de réservation … pas de vente pour l’instant J’avais fait un gros CVT il y a quelques années en arrière, je m’y replonge.
@rastapopoulos :
Dans charger() un $valeurs = array('email'=>''); affiche un input avec une value vide si je comprends bien au chargement du formulaire, comment faire pour initialiser la valeur de stock par défaut dans le cas de mon array, j’ai une 20aine d’input comme suit, « XX » étant l’id produit:
Si je fais $valeurs = array(produits'=>'10'); ça n’a pas l’air de marcher … La doc conseille bien de mentionner tous les champs du formulaire dans charger() je cite: " Même si la valeur par défaut est vide, il est important de faire figurer le champ dans le tableau retourné par la fonction charger(). En effet, SPIP utilise ensuite ce tableau pour savoir quels champs seront saisis."
Mais bon effectivement, il y a peut-être un truc qui m’échappe …
Pierre