Gå til innhold

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


Anbefalte innlegg

Skrevet (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 av bazzo
Videoannonse
Annonse
Skrevet (endret)

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

 

 

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

Endret av MC2
Skrevet (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 av bazzo
Skrevet

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:

Skrevet (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 av robgar
Skrevet

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

Skrevet
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å. :)

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

Endret av bazzo
Skrevet

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

?>

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 konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...