[spip-dev] Récuperer des valeurs tableau d'un formulaire

Bonjour,

On est toujours sur notre projet d'ajout par des internautes d'un titre à des images qu'ils uploadent... toute la mécanique fonctionne si on utilise des "name" normaux (par ex. titre_images_0) mais on voudrait y arriver avec des tableaux ... Après avoir lu pas mal de doc et de mentions dans la roadmap, je me demandais si finalement c'était possible (après lecture de https://core.spip.net/issues/4548) ... on a (simplifié):

dans le html des

<input type='text' name='titre_images[0]' />
<input type='text' name='titre_images[1]' />
<input type='text' name='titre_images[2]' />

etc ... Comment peut-on faire pour récupérer ça, on a essayé:

$titreimage = _request('titre_images[]');
$titreimage = _request('titre_images');
$titreimage = _request(0, 'titre_images');
$titreimage = _request('0', 'titre_images');
$titreimage = _request($i, 'titre_images');
$titreimage = _request('titre_images[$i]');
$titreimage = _request(0, 'titre_images[]'); ... et une autre infinité de variations, sans succès

Ensuite c'est injecté dans le titre du document:

objet_modifier('document', $nouveaux_docs[0], array('titre' => $titreimage));

C'est juste la syntaxe de la récup d'une ou des valeurs du tableau qui coince, un truc doit nous échapper ... si quelqu'un a une piste, merci d'avance !

Malheureusement ce n'est pas fournie avec le core de spip, et quand j'avais soumis l'idée on m'avait dit que c'était un cas trop rare...

le plugins saisies fournie une fonction capable de gérer cela : saisies_request()

Bonjour,

Le 23/04/2021 à 12:47, Maïeul Rouquette a écrit :

Le 23.04.21 à 11:55, CSI a écrit :

Bonjour,

C'est juste la syntaxe de la récup d'une ou des valeurs du tableau qui coince, un truc doit nous échapper ... si quelqu'un a une piste, merci d'avance !

--Â
Pierre

Malheureusement ce n'est pas fournie avec le core de spip, et quand j'avais soumis l'idée on m'avait dit que c'était un cas trop rare...

bizarre j'ai l'impression d'avoir le cas chaque fois que je fais un formulaire, mais bon, on a contourné en n'utilisant pas de tableaux, un peu moins élégant :slight_smile: content néanmoins de voir que ma recherche était suffisamment sérieuse et que ma conclusion était la bonne, j'avais peur d'avoir raté quelque chose d'évident.

le plugins saisies fournie une fonction capable de gérer cela : saisies_request()

ok on va regarder.
Merci pour toutes ces infos.

À vrai dire il y a même un ticket dédié : https://core.spip.net/issues/4548

Et je compte bien faire la PR un jour, car vraiment c'est pas du tout énorme au niveau du code, peu de choses à maintenir à priori, ça ferait une super amélioration qui facilite plein de choses en peu de lignes de code.

d'une manière globale je t'inviterai à regarder le plugin saisies si tu commence des nouveaux formulaires, ca permet de gerer pas mal de choses pratique et de declarer sa structure de formulaire de manière simple