Non, votre syntaxe est incorrecte. Vos arguments à form_input
sont farfelus et, comme vous l'avez, un seul champ de saisie est créé. La "valeur" de cette entrée peut être quelque chose comme
value='malefemalefemalemalemalemalsemalefemale',
Assurez-vous que ce n'est pas ce que vous voulez.
En fait, à partir du code que vous publiez, il est difficile de savoir ce que vous voulez. Je devine est ce
<?php
//create an array with attribute values that don't change
$attributes = [
'class' => "form-control form-input",
'style' => "cursor:default",
];
//create a counter
$i = 0;
foreach($profile as $prof)
{
//inputs need a unique "name" and "id", use the counter for that purpose
$attributes['name'] = 'gender'.$i;
$attributes['id'] = "name".$i;
//add the 'value' of each profile to the array
$attributes['value'] = $prof->gender;
//send the array to form_input
echo form_input($attributes, NULL, 'disabled');
echo "<br>"; //new line
$i++; //increase value of counter by one for next loop run
}
Ce qui précède produira un champ de texte (chacun sur une ligne distincte) pour chaque profil.
Documentation sur `form_input'.
Le "nom" des entrées sera "gender0", "gender1", etc., ce qui fonctionnera. Ce n'est pas la seule façon de le faire. Vous pouvez également utiliser des tableaux d'entrée. Cette syntaxe est name='gender[]'
. L'une ou l'autre approche fonctionnera pour le "nom" mais elle ne fonctionnera pas pour les attributs "id" qui doivent être uniques.