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?Avec le rendu suivant:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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); }
Code html : Sélectionner tout - Visualiser dans une fenêtre à part
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>
Partager