I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
Formen skal bruges til register samt edit af profil. Er den en nem måde at få det aktuelle land "selected", når brugeren skal redigere sin profil? ellers skal jeg til at tilføje kommandoen, til hver linie?
hvis du ligger landene ind i et array i stedet, og så senere printer listen via en løkke, kan du både få koden til at fremstå MEGET kortere.. Men så er det også let lige at kontrollere om brugerens valg er lig det du er nået til i løkken.. altså noget lignende:
Lav en ekstra fil til include. Den skal have følgende indhold:
$lande['none']='Please choose your country.'; $lande['Afghanistan']='Afghanistan'; $lande['Albania']='Albania'; og så videre. Det må du selv taste. ;-) and Barbuda</option>
function make_selectbox($navn,$selectliste,$nuværende){ echo "<select name='{$navn}'>\n"; foreach ($selectliste as $key => $value){ echo "<option value='{$key}'"; if ($key==$nuværende){echo " selected";} echo ">{$value}</option>\n"; } echo "</select>"; }
Nu kan du altid, når du skal have lavet en select-box bare kalde
make_selectbox("country",$lande,$row['country']);
Og bedst af alt, så kan funktionen også bruges til alle mulige andre select-bokse.
Nu kan jeg se, at der er kommet et par andre forslag, mens jeg skrev mit. Jeg har også en rettelse til mit. æ er ikke altid optimalt i variabelnavne, så de to steder skal $nuværende måske rettes til $nuvaerende
hehe.. da også en god ting.. det betyder vel bare at det er en god/rigtig måde at gøre det på.. ;) Men flotte er jeres uddybelser da..
sandbox -> har dog lige lidt problemer med at finde ud af hvordan din skal kunne virke? Hvornår bruger du dit array $lande? Og hvorfor ikke bare lade dem være nummeret som identifikation i stedet for ladets navn? Kan saktens være det bare er et kapitel jeg ikke har fået ordentligt ind.. ;) er det evt der der skulle hele $row['country'] ?? For så skal du bare sætte variablen $row ind i stedet, og så omdøbe den til $lande ;)
Synes godt om
Slettet bruger
16. december 2003 - 23:01#12
Det lande-array bruges som en parameter til funktionen, når man kalder den (lige som i schaefners forslag - hans og mit er faktisk temmelig ens).
Funktionen kaldes med tre parametre. 1: navnet på select-boksen 2: et navnebaseret array (F.eks $lande) 3: navnet på det nuværende valgte element i listen
Du kunne sagtens bruge et nummerbaseret array istedet, men så skulle du være sikker på, at når der bliver lavet nye lande, må de allerede eksisterende numre ikke skifte betydning. Ellers risikerer du at flytte danskere til DR Congo, hvis der kommer et nyt land før i listen.
Synes godt om
Slettet bruger
16. december 2003 - 23:36#13
Og $row['country'] var bare et eksempel på hvad variablen, der indeholdt brugerens valg kunne hedde.
Hvis du vil lave en med Danmark som forvalgt, skriver du bare:
make_selectbox("country",$lande,'Denmark');
Synes godt om
Slettet bruger
16. december 2003 - 23:50#14
Eller med schaefners ord:
Denmark er i dette tilfælde landet der skal være valgt i listen. Normalt ville dette hives udfra en databasen, f.eks.:
Som sagt er vores løninger MEGET ens - både i selve koden og i brugen af den. Der er faktisk kun to forskelle:
1: Min bruger navnebaseret array - schaefners bruger simpelt array 2: Min skriver ud - schaefners returnerer en streng
Hvis den returnerede værdi fra formularen skal være det samme, som brugeren ser i select-boksen, er begge lige gode, men der er mindre skrivearbejde med schaefners.
Hvis du vil have, at en muligheds værdi ikke behøver være det samme som den viste tekst, er min bedre. Du kan for eksempel lave en ny landeliste oversat til dansk, som returnerer samme værdier til databasen som den engelske. $DK_lande['Denmark']='Danmark'; og alle de andre på samme måde. Så skriver man bare make_selectbox("country",$DK_lande,'Denmark'); og får en dansksproget selectbox.
hehe.. ja.. og kan man vel egentligt også saktens ud fra det eksempel jeg skrev? Syntes nu stadig det er lettere at angive det med tal, og så bare slå fast hvordan disse skal ordnes.. Især hvis landene i stedet skal hives ud fra en database også.. Et tal fylder mindre end en hel tekst.. ;)
Synes godt om
Slettet bruger
17. december 2003 - 21:02#18
Ja, tal er tit smartere at bruge.
Og din kan naturligvis puttes ind i en funktion og sættes til at bruge antallet af elementer i arrayet istedet for et håndkodet tal. Med disse små tilføjelser vil din nok komme til at ligne de to andre lige så meget, som de ligner hinanden.
Synes godt om
Ny brugerNybegynder
Din løsning...
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.