Jump to content
Sign in to follow this  
bazzo

[LØST] Lite problem med variabel og loop ?

Recommended Posts

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 by bazzo

Share this post


Link to post

for ($i = 1; $i <= 4; $i++) {
   $ny = $var . $i;
};

 

 

EDIT: tror jeg misforsto litt. sånn, nå burde det være riktig.

Edited by MC2

Share this post


Link to post

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 by bazzo

Share this post


Link to post

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. :hmm:

Share this post


Link to post

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 by robgar

Share this post


Link to post

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.."

Share this post


Link to post
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å. :)

Share this post


Link to post

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. :w00t:

Edited by bazzo

Share this post


Link to post

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!";
}

?>

Share this post


Link to post

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...