[Résolu] saisie : comment boucler

j’ai un formulaire avec n fois le même « groupe » de saisie
groupe de saisie 1 …
saisie 2…
saisie n
j’ai du copier …n fois ces saisies en numerotant chaque element avec le numero correspondant.

Est-il possible de réaliser une boucle de n bloc de saisie ?
j’ai la syntaxe avec la syntaxe suivante



  $selection1_fieldset = array(  // debut liste 
		'saisie' => 'fieldset',
		'options' => array(
			'nom' => 'selection1',
			'label' => '<:paramsite:selection1:>',
			'pliable'=>'oui',
			'plie'=>'oui'
			),
		
		
		'saisies' =>  array(	  
		
		array(
			'saisie' => 'input',
			'options' => array(
				'nom' => 'sel1_libelle',
				'label' => '<:paramsite:champ_libelle_label:>',
				'explication' => '<:paramsite:champ_libelle_explication:>',
				'defaut' => '',
				
				)
			),
		array(
			'saisie' => 'selection',
			'options' => array(
				'nom' => 'sel1_mode',
				'cacher_option_intro' => 'oui',
				'label' => '<:paramsite:champ_mode_label:>',
				'explication'=>'<:paramsite:champ_mode_explication:>',
				'data' => $mode
				)
				
			),

etc etc

oui bien sur. Tes saisies étant déclarée en pur php, il faut utiliser une boucle php de type while. Tu trouver aisément de la documentation sur internet à ce sujet.

Mais en gros

$i = 1; // Un compteur
while ($i <= xx) { // xx doit être la valeur maximale que tu veux
  $saisies[] = [
    'saisie' => 'fieldset',
    'options' => [
       'nom' => "selection$i",
      'label' => "<:paramsite:selection$i>",
    ] 
  ];
}

etc…

note que j’utilise la forme courte des tableaux (désormais préférée dans SPIP), et les doubles quotes dans certains cas pour remplacer automatiquement le $i par sa valeur.

j’y suis arrivé en mettant

$i = 1; // Un compteur
$saisies =ARRAY();
while ($i <= 10) { 
  	$saisies[$i]= [	   //unesaisie			  
		'saisie' => 'fieldset',
		'options' => array(
			'nom' => "selection$i",
			'label' => "<:paramsite:selection:> ".$i			
			),
				
		'saisies' =>  array(	  
			array(
				'saisie' => 'input',
				'options' => array(
					'nom' => 'sel'."$i".'_libelle',
					'label' => '<:paramsite:champ_libelle_label:>',
					'explication' => '<:paramsite:champ_libelle_explication:>',					
					)
				),	

.................................

		),
			
	]; // fin une saisie 
   $i++;
}	// on retourne le tableau
	return $saisies;

merci

parfait. Par contre là tu a melangé la syntaxe array() et []. C’est pas très grave mais un peu pertburant-

je suis pas arrive a changer toute la syntaxe …pour la partie options c’est fait mais array( array( m’a perturbé…