Code parcouru 2 fois au lieu d'une.
Bonjour,
La portion de code suivante fait partie d'un contrôleur destiné à préremplir un formulaire multiple, c'est à dire qu'il contient un nombre variable de sous-formulaires identiques.
Le sous-formulaire contient une liste d'options. Les listes sont construites à partir d'une classe largement éprouvée et maintes fois testée. Je dois avoir un problème dans mes boucles foreach car les options sont répétées selon la séquence suivante: 1,1,2,2,2,4 au lieu de 1,2,4. Où est problème?
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51
| $inData = getUsersOfSubscriber($nSubscriberId);
if (!empty($inData)){
foreach($inData as $key=>$aSingle){
$post[$key] = $aSingle;
// Buttons for each childform
$echo[$key]['btn']['savElem'] = getDBText($language,72);
$echo[$key]['btn']['delElem'] = getDBText($language,73);
$echo[$key]['btn']['password'] = getDBText($language,140);
// Common buttons
$echo['btn']['newElem'] = getDBText($language,121);
// Labels
$echo['labels']['id'] = getDBText($language,131);
$echo['labels']['login'] = getDBText($language,132);
$echo['labels']['lastname'] = getDBText($language,133);
$echo['labels']['firstname'] = getDBText($language,134);
$echo['labels']['email'] = getDBText($language,135);
$echo['labels']['rightlevel'] = getDBText($language,136);
$echo['labels']['banned'] = getDBText($language,137);
// Title attributes for too long input values
$echo['titles'] = [];
foreach($aSingle as $k=>$value){
$echo['titles'][$k] = setTitle($value,27); // voir la valeur
}
unset($k,$value);
// Rightlevel list
$lstRightlevel= new OptListSelect($key.'[rightlevel]');
$lstRightlevel->addOption(new OptListOption('', '', ['label'=>getDBText($language,16)]));
if (!empty($inData)){
foreach($inData as $aUser){
var_dump($aUser['rightlevel']);
$sToSelect = ($aUser['rightlevel'] == $aSingle['rightlevel']) ? true: false;
$options = ($sToSelect) ? ['selected'=>'selected']: [];
$lstRightlevel->addOption(new OptListOption($aUser['rightlevel'], getDBText($language,124+$aUser['rightlevel']), $options));
}
}
// Fieldvalues
$echo[$key]['fields'][1] = "<input type='text' name='{$key}[id]' value='{$aSingle['id']}' readonly>";
$echo[$key]['fields'][2] = "<input type='text' name='{$key}[login]' value='{$aSingle['login']}'>";
$echo[$key]['fields'][3] = "<input type='text' name='{$key}[lastname]' value='{$aSingle['lastname']}'>";
$echo[$key]['fields'][4] = "<input type='text' name='{$key}[firstname]' value='{$aSingle['firstname']}'>";
$echo[$key]['fields'][5] = "<input type='text' name='{$key}[email]' value='{$aSingle['email']}'>";
$echo[$key]['fields'][6] = (string) $lstRightlevel;
$banned = (!empty($aSingle['banned'])) ? ' checked': '';
$echo[$key]['fields'][7] = "<input type='checkbox' name='{$key}[banned]' value='1'$banned>";
unset($aUser,$rightlevel);
// Include viewform
require("views/$language/setUser.php");
}
unset($key,$aSingle);
} |
Avec le rendu suivant:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51
| <form method="post" class="settings" action="frontend/settings.php">
<input type="hidden" id="id0" name="0[id]" value="2">
<input type="hidden" id="order0" name="0[order]">
<label><span>Clef</span><input type='text' name='0[id]' value='2' readonly></label><br>
<label><span>Identifiant</span><input type='text' name='0[login]' value='HerveC'></label><br>
<label><span>Nom</span><input type='text' name='0[lastname]' value='de la Caze'></label><br>
<label><span>Prénom</span><input type='text' name='0[firstname]' value='Hervé'></label><br>
<label><span>Courriel</span><input type='text' name='0[email]' value='herve.delacase@sirep.xx'></label><br>
<label><span>Niveau d'accès</span><select name='0[rightlevel]'><option value='' label='< ---- >'></option><option value='1' selected='selected'>Invité</option><option value='1' selected='selected'>Invité</option><option value='2'>Utilisateur</option><option value='2'>Utilisateur</option><option value='2'>Utilisateur</option><option value='4'>Webmestre</option></select></label><br>
<label><span>Banni</span><input type='checkbox' name='0[banned]' value='1' checked></label><br>
<p>
<input type="submit" name="save" value="Enregistrer">
<input type="submit" name="del" value="Supprimer">
<input type="submit" name="reset" value="Initialiser mot de passe">
</p>
</form>
<hr><form method="post" class="settings" action="frontend/settings.php">
<input type="hidden" id="id1" name="1[id]" value="6">
<input type="hidden" id="order1" name="1[order]">
<label><span>Clef</span><input type='text' name='1[id]' value='6' readonly></label><br>
<label><span>Identifiant</span><input type='text' name='1[login]' value='sirep'></label><br>
<label><span>Nom</span><input type='text' name='1[lastname]' value='Guest'></label><br>
<label><span>Prénom</span><input type='text' name='1[firstname]' value='Guest'></label><br>
<label><span>Courriel</span><input type='text' name='1[email]' value='guest.guest@sirep.xx'></label><br>
<label><span>Niveau d'accès</span><select name='1[rightlevel]'><option value='' label='< ---- >'></option><option value='1' selected='selected'>Invité</option><option value='1' selected='selected'>Invité</option><option value='2'>Utilisateur</option><option value='2'>Utilisateur</option><option value='2'>Utilisateur</option><option value='4'>Webmestre</option></select></label><br>
<label><span>Banni</span><input type='checkbox' name='1[banned]' value='1'></label><br>
<p>
<input type="submit" name="save" value="Enregistrer">
<input type="submit" name="del" value="Supprimer">
<input type="submit" name="reset" value="Initialiser mot de passe">
</p>
</form>
<hr><form method="post" class="settings" action="frontend/settings.php">
<input type="hidden" id="id2" name="2[id]" value="3">
<input type="hidden" id="order2" name="2[order]">
<label><span>Clef</span><input type='text' name='2[id]' value='3' readonly></label><br>
<label><span>Identifiant</span><input type='text' name='2[login]' value='GomezE'></label><br>
<label><span>Nom</span><input type='text' name='2[lastname]' value='Gomez'></label><br>
<label><span>Prénom</span><input type='text' name='2[firstname]' value='Enrico'></label><br>
<label><span>Courriel</span><input type='text' name='2[email]' value='enrico.gomez@sirep.xx'></label><br>
<label><span>Niveau d'accès</span><select name='2[rightlevel]'><option value='' label='< ---- >'></option><option value='1'>Invité</option><option value='1'>Invité</option><option value='2' selected='selected'>Utilisateur</option><option value='2' selected='selected'>Utilisateur</option><option value='2' selected='selected'>Utilisateur</option><option value='4'>Webmestre</option></select></label><br>
<label><span>Banni</span><input type='checkbox' name='2[banned]' value='1'></label><br>
<p>
<input type="submit" name="save" value="Enregistrer">
<input type="submit" name="del" value="Supprimer">
<input type="submit" name="reset" value="Initialiser mot de passe">
</p>
</form> |