thewarclown Skrevet 14. juli 2011 Del Skrevet 14. juli 2011 Hei, lager en liten while løkke som skal printe ut antall tekstbokser utifra hva brukeren har trykket inn på det forrige steget av prosessen (som da altså blir hentet ut og satt i $antallVegger). Problemet mitt er et når brukeren velger 1, så blir inputen osv printet ut med $tell som har en verdi av 3. Velger brukeren 2, så blir det printet ut to inputer med verdiene 1 og 3. Når brukeren velger 3 (maks) så blir det riktig, da kommer tre inputer opp.. Med verdiene 1, 2 og 3. Hvorfor blir det ikke riktig når brukeren velger 1 eller 2? <?php $antallVegger = $_POST["antallVegger"]; $tell = 1; while ($tell < $antallVegger){ echo "<input type='text' name='side$tell'><label for='side$tell'>Lengde for side $tell (milimeter)</label><br/>"; $tell = $tell + 1; } ?> Lenke til kommentar
GeirGrusom Skrevet 14. juli 2011 Del Skrevet 14. juli 2011 for($tell = 1; $tell <= $antallVegger; $tell++) { echo "<input type='text' name='side$tell'><label for='side$tell'>Lengde for side $tell (milimeter)</label><br/>"; } Lenke til kommentar
thewarclown Skrevet 14. juli 2011 Forfatter Del Skrevet 14. juli 2011 (endret) for($tell = 1; $tell <= $antallVegger; $tell++) { echo "<input type='text' name='side$tell'><label for='side$tell'>Lengde for side $tell (milimeter)</label><br/>"; } Det ga nøyaktig det samme resultatet som min while løkke, om jeg fjernet = fra parameterne inne i for løkka. Om jeg hadde = i den, så ble det hvertfall feil - da jeg fikk 2 inputs når brukeren egentlig valgte en.. altså en ekstra uansett valget til brukeren Endret 14. juli 2011 av dreamdev Lenke til kommentar
GeirGrusom Skrevet 14. juli 2011 Del Skrevet 14. juli 2011 Sjekk at verdiene du sender inn er korrekt. Den løkken skal bare gå én gang dersom brukeren skriver 1. $tell = 1 må være der, ellers vil $tell kanskje starte på 0, og da vil den gå to ganger. Lenke til kommentar
thewarclown Skrevet 14. juli 2011 Forfatter Del Skrevet 14. juli 2011 $antallVegger er korrekt. $teller = 1 har jeg ikke fjernet, jeg endret på: for($tell = 1; $tell <= $antallVegger; $tell++) til for($tell = 1; $tell < $antallVegger; $tell++) . Pga i ditt forslag så ble det en ekstra input (Bruker skriver 1, får 2. Bruker skriver 2, får 3. Bruker skriver 3, får 4.) Vil du ha kildekoden for hele scriptet? Det er bare en index.php fil uten noen database atm. Her: http://pastebin.com/jcuQ150T (Men det er vel ikke bruk for det, da det eneste som mangler i konteksten her er inputen som bestemmer $antallVegger.. men på pastebin ser du hvertfall at den er riktig). Sjekk at verdiene du sender inn er korrekt. Den løkken skal bare gå én gang dersom brukeren skriver 1. $tell = 1 må være der, ellers vil $tell kanskje starte på 0, og da vil den gå to ganger. Lenke til kommentar
GeirGrusom Skrevet 14. juli 2011 Del Skrevet 14. juli 2011 Å bytte ut <= med < burde egentlig føre til at den går 1 gang for lite (ettersom 1 < 1 er false, så skal den aldri gå dersom brukeren skriver 1) Lenke til kommentar
Terrasque Skrevet 14. juli 2011 Del Skrevet 14. juli 2011 int ($tell) vs string ($antallVegger) problematikk? Eller driter php i det? Lenke til kommentar
TheClown Skrevet 15. juli 2011 Del Skrevet 15. juli 2011 PHP driter i det. Scriptet er korrekt, det er trådstarteren som gjør noe galt, eller har misforstått noe. Trådstarter: Echo verdien i variabelen $antallVegger før scritpet starter. Sjekk at det er korrekt, mistenker at den blir satt feil i forrige steg i prosessen. Lenke til kommentar
thewarclown Skrevet 16. juli 2011 Forfatter Del Skrevet 16. juli 2011 Allerede prøvd. Har linja kildekoden til hele scriptet, kopier og se selv :o Lenke til kommentar
FraXinuS Skrevet 16. juli 2011 Del Skrevet 16. juli 2011 Løsningen er enkel. Se her: http://pastebin.com/9dvgR4jz Lenke til kommentar
thewarclown Skrevet 17. juli 2011 Forfatter Del Skrevet 17. juli 2011 Løsningen er enkel. Se her: http://pastebin.com/9dvgR4jz Er det mulig... Thanks for pointing out my rediculous flaw. *facepalm* 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å