19. juni 2006 - 17:09Der er
19 kommentarer og 2 løsninger
foreach + switch
Jeg prøver på at skrive en funktion som kan oprette forms fra et object. Objektet skal ikke altid have udskrevet alle form felter, derfor ville jeg sende et array med som beskriver hvilke forms der skal laves på den side. koden ser ud lidt allá følgende:
function member_form($edit, $fields) { $output .= '<div class="member-form">'; $form = ''; foreach ($fields as $key => $value){ print $key . " - " . $value; switch($key){ case 'medlemsnr': $form .= ''; //form element for medlemsnr. break; case 'fornavn': $form .= ''; //form element for fornavn. break; case 'efternavn': $form .= ''; //form element for efternavn. break; } $output .= form($form); $output .= '</div>'; } return $output; } hvor $edit er mit object, hvis det indeholder værdier for de rette form 'tags' jeg vil bruge indsættes den nuværende værdi. Fields er et array som indeholder ['fieldnavn']['attributes'] hvor attribs kunne være disable, hvis brugeren ikke må ændre det.
Problemet er nu at nær jeg kører denne func med $fields = array('fornavn' => '', 'medlemsnr' => 'disabled', 'efternavn' =>''); får jeg form element fornavn, fornavn, medlemsnr, fornavn, medlemsnr, efternavn
Det ser for mig ud til at den kører løkken på følgende måde 1 1, 2 1, 2, 3
Er dette meningen, og i så fald, hvordan kan man lave det jeg prøver på, jeg syntes switch så pænt ud, men måske skal jeg over i noget if halløj.
ville gerne have den først løb igennem fandt form elementen via switch til at give mig fornavn formen først, dernæst løb igennem igen og gav mig medlemsnr, og til sidst efternavn, altså gennemløb med resultat 1 2 3
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.