Probleme de if dans un foreach
Bonjour a tous,
Je suis en train de créer une fonction en poo pour la réalisation d'un select de formulaire, voici le code le problème et sa question viennent ensuite:
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
| <?php
class form{
static function select($name,$groupe,$value,$label=null,$class=null){
$a = '';
$a .= '<select name="'.$name.'" id="select'.$name.'"';
if($class!=null){
$a .= ' class="'.$class.'">
';
}
if($groupe==0){
foreach($value as $k => $v){
$a .= '<option value="';
if($k==$v){
$a .= $v.' - a';
}else{
$a .= $k.' - b';
}
$a .= '">'.$v.'</option>
';
}
}else{
foreach($value as $k => $v){
$a .= '<optgroup label="'.$k.'">
';
foreach($v as $key => $val){
$a .= '<option value="'.$key.'">'.$val.'</option>
';
}
$a .= '</optgroup>
';
}
}
$a .= '</select>';
return $a;
}
}
$form = new form();
echo $form->select('pays','1',array('Europe' => array('France', 'Espagne', 'Angleterre'), 'Amérique' => array('Etats-Unis', 'Mexique', 'Canada', 'Brésil')),'Selectionner un pays :','classselectionpays').'<br>
';
echo $form->select('pays','0',array('France', 'Espagne', 'Angleterre','Etats-Unis2' => 'Etats-Unis', 'Mexique', 'Canada2' => 'Canada', 'Brésil'),'Selectionner un pays :','classselectionpays').'<br>
';
?> |
Grâce au echo, j'affiche les select avec les options qui arrive via les array()
seulement, je cherche a ce que si je donne une clé ('tttt' => 'USA') pour une valeur, que cette clé soit la valeur de l'option et la valeur de la clé soit la sélection, je cherche en même temps que pour ceux qui n'ont pas de clés, la clés soit la valeur simple.
J'ai un soucis avec le if($k==$v) qui ne fonctionne que au premier passage.
Si vous avez une idée pour résoudre ce bug, vous êtes les bienvenue.