Bonjour,
J'ai un souci et ne vois pas où chercher, comment le solutionner...
J'ai écrit une fonction appelée de PHP qui génère le select et tous les <option>... etc des éléments d'une table afin de sélectionner un de ceux-ci.
Voici le code, facile:
La table est la suivante:
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 /* $nom : nom du champ $elements : tableau associatif dont les clefs et valeurs sont places dans les options value $default : valeur selectionnee ou NULL $taille : nombre de ligne affichees du champ */ function form_select($elements, $name = "select", $taille = 1, $style="form_select") { $default = (isset($_POST["$name"])) ? $_POST["$name"] : 0 ; // Essai..... $length = 0 ; foreach($elements as $clef => $valeur) { $len = strlen($value) ; if ($len > $length) $length = $len ; } echo "<div class='" . $style . "'>" ; echo '<select name="' . $name . '" id="' . $name . '"' . ($taille == 1 ? "" : " size=\"$taille\"") . '">'; foreach($elements as $clef => $valeur) { $selection = ($default == $valeur) ? " selected" : NULL ; echo '<option value="' . $valeur . '"' . $selection . '>' . $clef . '</option>' . "<br />"; } echo '</select>'; echo "</div>" ; // Suite essai.... return($length) ; }
J'utilise pour ce champ le CSS qui - entre autre - pour but de souligner en gras le bord du champ.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 // Cl Valeur // === ====== $sel_difficulte = array( "Difficulté" => 0 , "Douce " => 1 , "Randonnée exploration" => 2 , "Randonnée active" => 3 , "Randonnée aventure" => 4 , "Randonnée expédition" => 5 ) ;
J'ai cru un moment qu'on pouvait via HTML contrôler la longueur d'un champ SELECT, mais non - ou je n'ai pas bien vu - et il y a du coding dans mon fonction pour faire en sorte que celle-ci renvoie la longueur de l’élément le + long ou que cette longueur apparaisse dans un keyword du SELECT.
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 .form_select { color: #FFFFCC; font-size: medium; text-align: center; vertical-align: top; background-color: #33FF00; background-position: center top; border: 1px solid #000000; } Voici l'appel de la fonction:Mais le problème est - voir jpg en annexe - que j'ai 2 bords de couleur verte (définie par le background de la CSS je présume) de part et d'autre du champ à sélectionner proprement-dit. Ce n'est pas que cela me dérange mais je souhaiterais contrôler la longueur de ces bordures - voire la rendre nulle - mais comment faire ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1234567 <td class="form_select"> <?php $g = (isset($_POST['difficulte'])) ? $_POST['difficulte'] : 0 ; form_select($sel_difficulte , $name="difficulte" , $default = $g ) ; ?> </td>
Mais fonctionne pas !
Un p'tit coup de main me ferait grand plaisir.
Merci @ tous
Partager