Avatar billede river_rage Nybegynder
01. april 2006 - 03:23 Der er 9 kommentarer og
1 løsning

For loop med variabler der skal have stigende numre

Jeg har lavet en side, som skal liste nogle brugere,som tidligere i forløbet er blevet indtastet i en formular.

De er alle blevet overført siden med POST og hedder f.eks. firstname1, firstname2 osv.

Hvordan kan jeg få min for loop til at sætte et stigende tal på variablerne? Min kode ser således ud indtil videre.

for ($counter = 1; $counter <= $_SESSION['persons']; $counter ++)

    {
    echo "<table width=\"400\" border=\"0\" cellspacing=\"0\" cellpadding=\"5\">
    <tr>
      <td>".$firstname." ".$surname."</td>
    </tr>
    <tr>
      <td>".$address."</td>
    </tr>
    <tr>
      <td>".$zipcode." ".$city."</td>
    </tr>
    <tr>
      <td>".$email."</td>
    </tr>
    <tr>
      <td>".$day."-".$month."-".$year."</td>
    </tr>
  </table>";
    }
Avatar billede nielle Nybegynder
01. april 2006 - 08:29 #1
F.eks. sådan:

for ($counter = 1; $counter <= $_SESSION['persons']; $counter ++)
    {
    echo "<table width=\"400\" border=\"0\" cellspacing=\"0\" cellpadding=\"5\">
    <tr>
      <td>Person nr. ".$counter."</td>
    </tr>
    <tr>
      <td>".$firstname." ".$surname."</td>
    </tr>
    <tr>
      <td>".$address."</td>
    </tr>
    <tr>
      <td>".$zipcode." ".$city."</td>
    </tr>
    <tr>
      <td>".$email."</td>
    </tr>
    <tr>
      <td>".$day."-".$month."-".$year."</td>
    </tr>
  </table>";
    }
Avatar billede erikjacobsen Ekspert
01. april 2006 - 09:06 #2
Du kan

    <td>".$firstname." ".$_POST["firstname$counter"]."</td>
Avatar billede erikjacobsen Ekspert
01. april 2006 - 09:07 #3
Om igen:

    <td>First name: ".$_POST["firstname$counter"]."</td>
Avatar billede river_rage Nybegynder
01. april 2006 - 17:56 #4
erikjacobsen, jeg prøvede dit forslag, men det ser ikke ud til, at php opfatter at firstname og $counter skal slåes sammen. Er det muligt, at man skal definere en variabel tidligere i loop'et hvor firstname og $counter bliver slået sammen? I så fald hvordan?
Avatar billede erikjacobsen Ekspert
01. april 2006 - 17:58 #5
Det bør virke ud fra hvad du har skrevet. Kan du vise dine kode eller give et link?
Avatar billede river_rage Nybegynder
01. april 2006 - 18:05 #6
Dette er sådan som koden ser ud i henhold til dit forslag, hvis jeg altså har fået skrevet den rigtigt:

for ($counter = 1; $counter <= $_SESSION['persons']; $counter ++)

    {
    echo "<table width=\"400\" border=\"0\" cellspacing=\"0\" cellpadding=\"5\">
    <tr>
      <td>".$_POST['firstname$counter']." ".$_POST['surname$counter']."</td>
    </tr>
    <tr>
      <td>".$_POST['address$counter']."</td>
    </tr>
    <tr>
      <td>".$_POST['zipcode$counter']." ".$_POST['city$counter']."</td>
    </tr>
    <tr>
      <td>".$_POST['email$counter']."</td>
    </tr>
    <tr>
      <td>".$_POST['day$counter']."-".$_POST['month$counter']."-".$_POST['year$counter']."</td>
    </tr>
  </table>";
    }

Og dette er det der bliver sendt til ovenstående side via formular:

for ($counter = 1; $counter <= $_SESSION['persons']; $counter ++)

    {
    echo "<br /><br />person ".$counter."&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <input name=\"rejsebevis\" type=\"radio\" value=\"rejsebevis".$counter."\" />Skal have tilsendt rejsebeviset
<br />";
    echo "<p>fornavn:
    <input type=\"text\" name=\"firstname".$counter."\" />
  efternavn:
  <input type=\"text\" name=\"surname".$counter."\" />
  </p>
  <p>adresse:
    <input type=\"text\" name=\"address".$counter."\" />
  </p>
  <p>postnr./by:
    <input type=\"text\" name=\"zipcode".$counter."\" />
    <input type=\"text\" name=\"city".$counter."\" />
  </p>
  <p>e-mail:
    <input type=\"text\" name=\"email".$counter."\" />
  </p>
  <p>f&oslash;dselsdato:
    <select name=\"day".$counter."\" id=\"day\">
      <option selected=\"selected\">1</option>
      <option>2</option>
      <option>3</option>
      <option>4</option>
      <option>5</option>
      <option>6</option>
      <option>7</option>
      <option>8</option>
      <option>9</option>
      <option>10</option>
      <option>11</option>
      <option>12</option>
      <option>13</option>
      <option>14</option>
      <option>15</option>
      <option>16</option>
      <option>17</option>
      <option>18</option>
      <option>19</option>
      <option>20</option>
      <option>21</option>
      <option>22</option>
      <option>23</option>
      <option>24</option>
      <option>25</option>
      <option>26</option>
      <option>27</option>
      <option>28</option>
      <option>29</option>
      <option>30</option>
      <option>31</option>
    </select>
    <select name=\"month".$counter."\" id=\"month\">
      <option selected=\"selected\">januar</option>
      <option>februar</option>
      <option>marts</option>
      <option>april</option>
      <option>maj</option>
      <option>juni</option>
      <option>juli</option>
      <option>august</option>
      <option>september</option>
      <option>oktober</option>
      <option>november</option>
      <option>december</option>
    </select>
    <select name=\"year".$counter."\">
      <option>1979</option>
      <option>1980</option>
      <option>1981</option>
      <option>1982</option>
      <option>1983</option>
      <option>1984</option>
      <option>1985</option>
      <option>1986</option>
      <option>1987</option>
      <option>1988</option>
    </select>
</p>";

    }
Avatar billede erikjacobsen Ekspert
01. april 2006 - 19:12 #7
Ikke $_POST['zipcode$counter'] men $_POST["zipcode$counter"]
Avatar billede river_rage Nybegynder
01. april 2006 - 20:10 #8
Yes nu virker det :)

Må jeg spørge hvad forskellen på de to er, så jeg også får forståelsen af det?

...og hvis du lige skriver det som et svar, så skal jeg gi' dig pointene

mvh

r_r
Avatar billede erikjacobsen Ekspert
01. april 2006 - 20:17 #9
Jeg samler slet ikke på point. I "...." strenge gør man noget ved $variabler, men ikke i '....' strenge
Avatar billede river_rage Nybegynder
01. april 2006 - 20:20 #10
Så skal nøjes vi med et tak for hjælpen

..og hermed lukker jeg spørgsmålet :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester