bazzo Skrevet 26. desember 2005 Del Skrevet 26. desember 2005 (endret) for ($i = 1; $i <= 4; $i++) { $ny = "$var$i"; $ny skal bli en ny variabel $var1 $var2 $var3 og $var4 hvordan får jeg den til å bli en ny variabel ? Jeg håper dere fårstår hvor jeg vil ? Endret 27. desember 2005 av bazzo Lenke til kommentar
ThOms-N Skrevet 26. desember 2005 Del Skrevet 26. desember 2005 Må i hvertfall avslutte med } Ikkje heilt med. Skal du endre $ny eller skal du lage ny variabel? Lenke til kommentar
MC2 Skrevet 26. desember 2005 Del Skrevet 26. desember 2005 (endret) for ($i = 1; $i <= 4; $i++) { $ny = $var . $i; }; EDIT: tror jeg misforsto litt. sånn, nå burde det være riktig. Endret 26. desember 2005 av MC2 Lenke til kommentar
bazzo Skrevet 26. desember 2005 Forfatter Del Skrevet 26. desember 2005 jeg skal ha en ny variabel Lenke til kommentar
bazzo Skrevet 26. desember 2005 Forfatter Del Skrevet 26. desember 2005 (endret) OK! Jeg tar med alt fra begynnelsen. Jeg har en form som postes til en ny fil: index.php <form name="form_nr" action="<?= $PHP_SELF ?>" method="post"> Antall: <input name="nr" type="text" size="4" value="<?= $nr; ?>" /> <input value="GO!" name="submit" type="submit" /> </form> <br /> <br /> <form name="form_next" action="test.php" method="post"> <?php for ($i = 1; $i <= $nr; $i++) { echo " <br><br><hr> Tekst $i: <input value=\"tekst_$i\" name=\"tekst$i\" type=\"text\" /><br> Valg $i: <select name=\"valg$i\"> <option>Valg01</option> <option>Valg02</option> <option>Valg03</option> <option>Valg04</option> </select> "; } ?> <br> <div align="right"> <input type="hidden" name="nr" value="<?= $nr; ?>"/> <input name="Reset" type="reset" /> <input value="GO AGAIN!" name="submit" type="submit" /> </div> </form> test.php <?php echo "Det er gjort $nr valg"; for ($i = 1; $i <= $nr; $i++) { $tekst = $tekst . $i; $valg = $valg . $i; echo "<br><br><hr> Tekst $i: $tekst <br> Valg $i: $valg <br> "; } ?> Men dette blir helt feil for den poster bare tallene. Endret 29. desember 2005 av bazzo Lenke til kommentar
bazzo Skrevet 26. desember 2005 Forfatter Del Skrevet 26. desember 2005 Eller finnes det en annen måte og gjøre dette på? Lenke til kommentar
bazzo Skrevet 26. desember 2005 Forfatter Del Skrevet 26. desember 2005 Det jeg vil er at variablene skal telle automatisk slik at jeg får hentet ut infoen fra formen i index.php til test.php eks. $tekst1 $tekst2 $tekst3 osv.... basert på hvor mange felt som er valgt i index.php. Lenke til kommentar
robgar Skrevet 27. desember 2005 Del Skrevet 27. desember 2005 (endret) EDIT: posten min var ment å være litt veiledende, men den ble bare et veldig stort rot. Håper du kan få nyte av noe av det som står her, men jeg tok ikke for meg hele koden ... Bruk arrays $ny_variabel = array(); for ($i=0; $i< *$noe*; $i++) { $ny_variabel[$i] = $_POST['opt_1']; } Men ser at du ikke har hentet post dataene... Når du har et element i en form, f.eks et tekstfelt så må du gi den et navn / id. For å bruke dette i phpen, henter du verdien i dette feltet slik: $variabel = $_POST['navn_paa_felt']; Eller om du bruker GET $variabel = $_GET['navn_paa_felt']; Du vil da få en tilsvarende kode: html <form name="form_nr" action="<?= $PHP_SELF ?>" method="post">Antall: <input name="nr" type="text" size="4" value="<?= $nr; ?>" /> <input value="GO!" name="submit" type="submit" /> </form> <br /> <br /> <form name="form_next" action="test.php" method="post"> <?php for ($i = 1; $i <= $nr; $i++) { echo " <br><br><hr> <?php $tekst = array(); $tekst[0] = "noe_tekst"; $tekst[1] = "blabla"; $tekst[2] = "trallala"; $tekst[3] = "annat"; for ($i=0; $i<sizeof($tekst); $i++) { print "Tekst " . $i . ": <input value=\"" . $tekst . "\" name=\"tekst_" . $i . "\" type=\"textfield\" /><br> } $options = array(); $options[0] = "Valg00"; $options[0] = "Valg01"; $options[0] = "Valg02"; $options[0] = "Valg03"; print " Valg <select name=\"valg\">"; for($i=0; $i<sizeof($options); $i++) { print "<option name=\"valg_" . $i . "\">" . $options[$i] . " </option>"; } print " </select>"; } ?> <br> <div align="right"> <input type="hidden" name="nr" value="<?= $nr; ?>"/> <input name="Reset" type="reset" /> <input value="GO AGAIN!" name="submit" type="submit" /> </div> </form> php <?php echo "Det er gjort $nr valg"; for ($i = 1; $i <= $nr; $i++) { $tekst = $tekst . $i; $valg = $valg . $i; echo "<br><br><hr> Tekst $i: $tekst <br> Valg $i: $valg <br> "; } ?> Endret 27. desember 2005 av robgar Lenke til kommentar
Ultrag Skrevet 27. desember 2005 Del Skrevet 27. desember 2005 for ($i = 1; $i <= 4; $i++) { $nyttvarname = "$var$i"; $$nyttvarname = 'whatever'; } #echo for eksempel $var4 blir whatever Lenke til kommentar
bazzo Skrevet 27. desember 2005 Forfatter Del Skrevet 27. desember 2005 Problemet er at "$tekst" skal telle selv... eks. $tekst1 $tekst2 $tekst3 $tekst4 osv... For tekst feltene i index.php heter jo name="tekst1,2,3, osv.." Lenke til kommentar
kilogram Skrevet 27. desember 2005 Del Skrevet 27. desember 2005 Problemet er at "$tekst" skal telle selv... eks. $tekst1 $tekst2 $tekst3 $tekst4 osv... For tekst feltene i index.php heter jo name="tekst1,2,3, osv.." 5342607[/snapback] Dette kan du gjøre på denne måten; $i = 0; // om den første heiter "tekst1", endre denne til 1 while (isset($_POST['tekst'.$i])) { ${'tekst'.$i} = $_POST['tekst'.$i]; $i++; } Då får du eit sett variablar som heiter $tekst0, $tekst1, $tekst2, $tekst3. Det smarte å gjere i dette tilfellet hadde jo vore å bruke eit array, der du setter name-egenskapen på alle tekstfelta i HTML-fila til "textarray[]". Då vil $_POST['textarray'] vere ein array, slik at du kan hente ut alle verdiane berre ved å sjå direkte i arrayen; $textarray = $_POST['textarray']; $tekst1 = $textarray[0]; // merk at den begynner på 0 $tekst2 = $textarray[1]; ... Dersom du må ha tekstfelta nummerert korrekt når du får dei frå tekstfila, kan du og gjere følgande i HTML-fila; <input type="text" name="textarray[1]" /><br/> <input type="text" name="textarray[2]" /><br/> <input type="text" name="textarray[3]" /><br/> <input type="text" name="textarray[4]" /><br/> Då veit du at du alltid vil få ut teksten som vart skrive i den andre inputboksen ved å bruke $textarray[2], og du kan hoppe over nummer når du skriver HTML-koden. Håper dette hjelper litt på. Lenke til kommentar
bazzo Skrevet 27. desember 2005 Forfatter Del Skrevet 27. desember 2005 (endret) Det smarte å gjere i dette tilfellet hadde jo vore å bruke eit array, der du setter name-egenskapen på alle tekstfelta i HTML-fila til "textarray[]". Då vil $_POST['textarray'] vere ein array, slik at du kan hente ut alle verdiane berre ved å sjå direkte i arrayen; 5342851[/snapback] Takker array fungerte akkurat som jeg ønsket. Endret 27. desember 2005 av bazzo Lenke til kommentar
Sycosis Skrevet 28. desember 2005 Del Skrevet 28. desember 2005 mulighet for å se ferdig resultat eller? Lenke til kommentar
bazzo Skrevet 29. desember 2005 Forfatter Del Skrevet 29. desember 2005 Selfølgelig! Her er -= LINK! =- index.php <form name="form_nr" action="<?= $PHP_SELF ?>" method="post"> Antall: <input name="nr" type="text" size="4" value="<?= // $nr; ?>" /> <input value="GO!" name="submit" type="submit" /> </form> <br /> <br /> <form name="form_go" action="test.php" method="post"> <?php $antall = 20; if ($nr <= $antall) { $i = 1; while ($i <= $nr) { echo " <br><br><hr> Tekst $i : <input value=\"tekst_$i\" name=\"textarray[$i]\" type=\"text\" /><br> Valg $i : <select name=\"valgarray[$i]\"> <option>Valg01</option> <option>Valg02</option> <option>Valg03</option> <option>Valg04</option> </select> "; $i++; } } else { echo "Den går ikkje, du kan ikkje ha flere enn $antall."; } ?> <br> <div align="right"> <input type="hidden" name="nr" value="<?= $nr; ?>"/> <input name="Reset" type="reset" /> <input value="GO AGAIN!" name="submitt" type="submit" /> </div> </form> test.php <?php if (isset($_POST["submitt"])) { $textarray = $_POST['textarray']; $valgarray = $_POST['valgarray']; echo "<b>Det er gjort $nr valg</b><br><br>"; $i = 1; while ($i <= $nr) { print "$tekst[$i]"; echo " <br><br><hr> Tekst $i: $textarray[$i] <br> Valg $i: $valgarray[$i] <br> "; $i++; } } else { echo "Sorry MAC!"; } ?> 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å