plumbe Skrevet 13. juni 2005 Del Skrevet 13. juni 2005 Har en dropdownliste som får resultater fra denne php snutten: <? for ($i = 01; $i <= 30; $i++) {?> <option value= "<? echo $i; ?>"><? echo $i;?></option> <? }?> Hvordan gjør jeg slik at jeg kan utelate f.eks 5. prøvde denne: <? for ($i = 01; $i <= 30%5; $i++) {?> <option value= "<? echo $i; ?>"><? echo $i;?></option> <? }?> men det funka dårlig. Noen forslag hvordan den kan løses? Lenke til kommentar
frg Skrevet 13. juni 2005 Del Skrevet 13. juni 2005 (endret) Hvis du skulle utelate hver femte, så kan du prøve med denne if-testen: <? for ($i = 01; $i <= 30; $i++) { if ($i%5 != 0) ?> <option value= "<? echo $i; ?>"><? echo $i;?></option> <? }?> Endret 13. juni 2005 av frg Lenke til kommentar
plumbe Skrevet 13. juni 2005 Forfatter Del Skrevet 13. juni 2005 jeg skal bare utelate ett tall, f.eks tallet 5 eller tallet 23 Lenke til kommentar
Torbjørn Skrevet 13. juni 2005 Del Skrevet 13. juni 2005 Hvis du skulle utelate hver femte, så kan du prøve med denne if-testen: <? for ($i = 01; $i <= 30; $i++) { if ($i%5 != 0) ?> <option value= "<? echo $i; ?>"><? echo $i;?></option> <? }?> her oppnår du ikke mye med != 0, prøv uten og du vil se du får samme resultat Lenke til kommentar
genstian Skrevet 13. juni 2005 Del Skrevet 13. juni 2005 da er if($i == 23){} else {} en god måtte og gjøre det på. Lenke til kommentar
frg Skrevet 13. juni 2005 Del Skrevet 13. juni 2005 (endret) Hvis du skulle utelate hver femte, så kan du prøve med denne if-testen: <? for ($i = 01; $i <= 30; $i++) { if ($i%5 != 0) ?> <option value= "<? echo $i; ?>"><? echo $i;?></option> <? }?> her oppnår du ikke mye med != 0, prøv uten og du vil se du får samme resultat oppnår vel at hver gang i = 5, 10 osv (f.eks 5%5=0), så hopper den over utskriften siden if-testen ikke slår til..... Bør kanskje ha en {} etter if-testen, får da følgende utskrift i dropdown-boksen: 1 2 3 4 6 7 ... Men nå var det ikke så farlig siden det ikke var det han ville. Endret 13. juni 2005 av frg Lenke til kommentar
plumbe Skrevet 13. juni 2005 Forfatter Del Skrevet 13. juni 2005 litt mer nøyaktig hva som jeg vil skal skje: Dropdownlisten skal brukes til å forandre når brukerens fødselsdato, nærmere bestemt måned.(kanskje litt porngløst men). Jeg har da to "<option>" verdier i scripte(: 1. den verdien som er satt kommer som default. 2. Etter defaultverdien kommer for loopen som ramser opp de andre tolv månedene. Da kommer jo en måned opp opp to ganger, en fra dabasen og en fra oppramsingen av de månedene(ligger i en array). Jeg vil at tallet bare skal komme opp en gang. Etter å ha tenkt litt har jeg kommet fram til et forslag: while($row[]=$array(hvor alle månedene ligger lagret)) { if ($month(hentet fra databasen)!=$row) { echo $row; }} men det ser ikke ut til å funke, men er jeg på riktig spor? Lenke til kommentar
Torbjørn Skrevet 13. juni 2005 Del Skrevet 13. juni 2005 Hvis du skulle utelate hver femte, så kan du prøve med denne if-testen: <? for ($i = 01; $i <= 30; $i++) { if ($i%5 != 0) ?> <option value= "<? echo $i; ?>"><? echo $i;?></option> <? }?> her oppnår du ikke mye med != 0, prøv uten og du vil se du får samme resultat oppnår vel at hver gang i = 5, 10 osv (f.eks 5%5=0), så hopper den over utskriften siden if-testen ikke slår til..... Bør kanskje ha en {} etter if-testen, får da følgende utskrift i dropdown-boksen: 1 2 3 4 6 7 ... Men nå var det ikke så farlig siden det ikke var det han ville. poenget var at fjerner du != 0 får du samme resultat, siden 0 uansett gir boolean false, og resultatet av % alltid er en integer if(tallet % 5) er mao mer enn nok Lenke til kommentar
frg Skrevet 13. juni 2005 Del Skrevet 13. juni 2005 (endret) poenget var at fjerner du != 0 får du samme resultat, siden 0 uansett gir boolean false, og resultatet av % alltid er en integer ok - ja, det er sant. Endret 13. juni 2005 av frg Lenke til kommentar
kakkle Skrevet 13. juni 2005 Del Skrevet 13. juni 2005 (endret) litt mer nøyaktig hva som jeg vil skal skje:Dropdownlisten skal brukes til å forandre når brukerens fødselsdato, nærmere bestemt måned.(kanskje litt porngløst men). Jeg har da to "<option>" verdier i scripte(: 1. den verdien som er satt kommer som default. 2. Etter defaultverdien kommer for loopen som ramser opp de andre tolv månedene. Da kommer jo en måned opp opp to ganger, en fra dabasen og en fra oppramsingen av de månedene(ligger i en array). Jeg vil at tallet bare skal komme opp en gang. Etter å ha tenkt litt har jeg kommet fram til et forslag: while($row[]=$array(hvor alle månedene ligger lagret)) { if ($month(hentet fra databasen)!=$row) { echo $row; }} men det ser ikke ut til å funke, men er jeg på riktig spor? Hmmm... Hvis jeg skjønner deg riktig, vil du at måneden som står i databasen skal vises i option feltet som default. Kan du ikke bare gjøre en test på om måneden som er i while løkken er den samme som er i databasen, og hvis den er det, setter du det option-elementet til default, eller selected. Eksempel: Si at alle månedene ligger lagret i arrayet $maneder, og måneden fra databasen ligger i variabelen $db_maned. for($i=0;$i<count($maneder);$i++) { if ($maneder[$i] != $db_maned) { echo "<option value='$maneder[$i]'>$maneder[$i]</option>"; } else { echo "<option value='$maneder[$i]' selected='selected'>$maneder[$i]</option>"; } EDIT: evt: for($i=0;$i<count($maneder);$i++) { $selected = ($maneder[$i] != $db_maned)?"";" selected='selected'"; echo "<option value='$maneder[$i]".$selected.">$maneder[$i]</option>"; } som gjør akkurat det samme; Setter selected = "" Dersom det er ulik måned og $selected = " selected='selected'" dersom det er lik måned Endret 13. juni 2005 av kakkle Lenke til kommentar
plumbe Skrevet 13. juni 2005 Forfatter Del Skrevet 13. juni 2005 det så ut til å være en bedre løsning. Er på vei ut døra nå, så jeg får teste når jeg kommer hjem Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå