Archives de la liste a​i​d​e​@p​a​h​e​k​o​.c​l​o​u​d​

Brindille et form avec tableau multidimensionnel

Alexis Godin

04/01/2024 19:01:26

Bonjour,

J’ai une question pour les experts des modules. 
Je travaille sur la création d’un module et j’ai besoin à un moment d’avoir un
formulaire dont l’un des paramètres transfèré est un tableau multidimensionnel ( n
ligne de 2 colonnes).
Mais je n’y arrive pas.
J’y arrive sans soucis si le tableau n’a qu’une seul colonne ( donc une liste de
valeurs). 

Merci d’avance si qq un peut m’aider !

Brindille et form avec tableau multidimensionnel

Alexis Godin

06/01/2024 20:10:18

Je relance ma question.
Personne n’a une idée pour m’aider?


> Le 4 janv. 2024 à 19:00, Alexis Godin <alexis.godin@free.fr> a écrit :
> 
> Bonjour,
> 
> J’ai une question pour les experts des modules. 
> Je travaille sur la création d’un module et j’ai besoin à un moment
d’avoir un formulaire dont l’un des paramètres transfèré est un tableau
multidimensionnel ( n ligne de 2 colonnes).
> Mais je n’y arrive pas.
> J’y arrive sans soucis si le tableau n’a qu’une seul colonne ( donc une
liste de valeurs). 
> 
> Merci d’avance si qq un peut m’aider !
> 
> -- 
> Liste d'entraide des utilisateurs de Paheko
> https://paheko.cloud/
> 
> Pour se désinscrire : https://paheko.cloud/entraide
> Archives : https://admin.kd2.org/lists/aide@paheko.cloud/archives/

Brindille et form avec tableau multidimensionnel

lesanges at zaclys.net via aide

06/01/2024 20:46:28

Est-ce que tu cherches quelque chose comme ceci ?

array(1) {
   ["mat"]=> array(3) {
       [0]=> array(2) {
           [0]=> string(3) "e11"
           [1]=> string(3) "e12"
           }
       [1]=> array(2) {
           [0]=> string(3) "e21"
           [1]=> string(3) "e22"
           }
       [2]=> array(2) {
           [0]=> string(3) "e31"
           [1]=> string(3) "e32"
           }
       }
   }

si oui, voici comment je l'ai créé (il y a peut-être plus compact... à creuser)

{{:assign var="l1." value="e11"}}
{{:assign var="l1." value="e12"}}
{{:assign var="l2." value="e21"}}
{{:assign var="l2." value="e22"}}
{{:assign var="l3." value="e31"}}
{{:assign var="l3." value="e32"}}
{{:assign var="mat." value=$l1}}
{{:assign var="mat." value=$l2}}
{{:assign var="mat." value=$l3}}
{{:debug mat=$mat}}

Le principe est que chaque ligne est un tableau de 2 éléments.

Jean-Christophe Engel

Le 04/01/2024 à 19:00, Alexis Godin a écrit :
> Bonjour,
> 
> J’ai une question pour les experts des modules.
> Je travaille sur la création d’un module et j’ai besoin à un moment
d’avoir un formulaire dont l’un des paramètres transfèré est un tableau
multidimensionnel ( n ligne de 2 colonnes).
> Mais je n’y arrive pas.
> J’y arrive sans soucis si le tableau n’a qu’une seul colonne ( donc une
liste de valeurs).
> 
> Merci d’avance si qq un peut m’aider !
>

Brindille et form avec tableau multidimensionnel

BohwaZ/Paheko

06/01/2024 20:56:54

Hello, je n'ai pas compris ta question désolé.

Mais si c'est pour faire un tableau multi-niveau, c'est comme en HTML
et en PHP :

Dans le html : 

<input type="text" name="post[1][a]" value="coucou" />

Dans le Brindille :

{{if $_POST.1.a == 'coucou'}}
  Coucou
{{/if}}

Brindille et form avec tableau multidimensionnel

Alexis Godin

08/01/2024 09:49:07

Je suis parti sur quelque chose comme ça.
Mais déjà si je ne mets pas de . entre les 2 identifiants de cellule, ça me fait un
message d’erreur.

Du coup j’ai qqchose comme ça:
<input type="text" name=« validatedt[0][a]" value=« valeur 1"
/>
<input type="text" name=« validatedt[0][b]" value="valeur 2"
/>
<input type="text" name=« validatedt[1][a]" value="valeur 3"
/>
<input type="text" name=« validatedt[1][b]" value="valeur 4"
/>

Sauf que là je ne récupère qu’une table à une dimension:
validated[0] = "valeur 2"
validated[1] = "valeur 3"
En résumé c’est comme çi le code ignorait totalement la 2ème dimension de ma table

> Le 6 janv. 2024 à 20:56, BohwaZ/Paheko <bohwaz@paheko.cloud> a écrit :
> 
> Hello, je n'ai pas compris ta question désolé.
> 
> Mais si c'est pour faire un tableau multi-niveau, c'est comme en
HTML
> et en PHP :
> 
> Dans le html : 
> 
> <input type="text" name="post[1][a]"
value="coucou" />
> 
> Dans le Brindille :
> 
> {{if $_POST.1.a == 'coucou'}}
>  Coucou
> {{/if}}
> 
> -- 
> Liste d'entraide des utilisateurs de Paheko
> https://paheko.cloud/
> 
> Pour se désinscrire : https://paheko.cloud/entraide
> Archives : https://admin.kd2.org/lists/aide@paheko.cloud/archives/

Brindille et form avec tableau multidimensionnel

Alexis Godin

08/01/2024 10:00:00

Petite correction mon code est :
<input type="text" name=« validatedt[0].[a]" value=« valeur 1"
/>
<input type="text" name=« validatedt[0].[b]" value="valeur 2"
/>
<input type="text" name=« validatedt[1].[a]" value="valeur 3"
/>
<input type="text" name=« validatedt[1].[b]" value="valeur 4"
/>

sa,s le point entre les 2 argument ça plante

Brindille et form avec tableau multidimensionnel

lesanges at zaclys.net via aide

08/01/2024 11:36:44

Voici un exemple de code qui ressemble au tien avec 3 captures d'écran

{{* Traiter l'envoi du formulaire *}}
{{#form on="save"}}
	{{:debug post=$_POST}}
{{/form}}

<form method="post" action="">
   <fieldset>
	<legend>Modifiez les valeurs</legend>
	<dl>
	  <input type="text" name="validated[0][a]" value="v1"
/>
	  <input type="text" name="validated[0][b]" value="v2"
/>
	  <input type="text" name="validated[1][a]" value="v3"
/>
	  <input type="text" name="validated[1][b]" value="v4"
/>
	</dl>
   </fieldset>
   <p class="submit">
	{{:button type="submit" name="save" label="Enregistrer"
shape="right" 
class="main"}}
   </p>
</form>

La variable $_POST.validated contient ce que tu veux, me semble-t-il :

["validated"]=> array(2) {
     [0]=> array(2) {
         ["a"]=> string(5) "v1xxx"
         ["b"]=> string(6) "123456"
         }
     [1]=> array(2) {
         ["a"]=> string(6) "azerty"
         ["b"]=> string(4) "blob"
         }
     }


Jean-Christophe Engel

Le 08/01/2024 à 09:59, Alexis Godin a écrit :
> Petite correction mon code est :
> <input type="text" name=« validatedt[0].[a]" value=« valeur
1" />
> <input type="text" name=« validatedt[0].[b]" value="valeur
2" />
> <input type="text" name=« validatedt[1].[a]" value="valeur
3" />
> <input type="text" name=« validatedt[1].[b]" value="valeur
4" />
> 
> sa,s le point entre les 2 argument ça plante
>