bazzo 0 Report post Posted December 26, 2005 (edited) 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 ? Edited December 27, 2005 by bazzo Quote Share this post Link to post
ThOms-N 109 Report post Posted December 26, 2005 Må i hvertfall avslutte med } Ikkje heilt med. Skal du endre $ny eller skal du lage ny variabel? Quote Share this post Link to post
MC2 0 Report post Posted December 26, 2005 (edited) for ($i = 1; $i <= 4; $i++) { $ny = $var . $i; }; EDIT: tror jeg misforsto litt. sånn, nå burde det være riktig. Edited December 26, 2005 by MC2 Quote Share this post Link to post
bazzo 0 Report post Posted December 26, 2005 jeg skal ha en ny variabel Quote Share this post Link to post
bazzo 0 Report post Posted December 26, 2005 (edited) 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. Edited December 29, 2005 by bazzo Quote Share this post Link to post
bazzo 0 Report post Posted December 26, 2005 Eller finnes det en annen måte og gjøre dette på? Quote Share this post Link to post
bazzo 0 Report post Posted December 26, 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. Quote Share this post Link to post
robgar 1 Report post Posted December 27, 2005 (edited) 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> "; } ?> Edited December 27, 2005 by robgar Quote Share this post Link to post
Ultrag 0 Report post Posted December 27, 2005 for ($i = 1; $i <= 4; $i++) { $nyttvarname = "$var$i"; $$nyttvarname = 'whatever'; } #echo for eksempel $var4 blir whatever Quote Share this post Link to post
bazzo 0 Report post Posted December 27, 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.." Quote Share this post Link to post
kilogram 0 Report post Posted December 27, 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å. Quote Share this post Link to post
bazzo 0 Report post Posted December 27, 2005 (edited) 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. Edited December 27, 2005 by bazzo Quote Share this post Link to post
Sycosis 0 Report post Posted December 28, 2005 mulighet for å se ferdig resultat eller? Quote Share this post Link to post
bazzo 0 Report post Posted December 29, 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!"; } ?> Quote Share this post Link to post