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>"; }
Annonceindlæg fra Computerworld
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>"; }
01. april 2006 - 09:06
#2
Du kan <td>".$firstname." ".$_POST["firstname$counter"]."</td>
01. april 2006 - 09:07
#3
Om igen: <td>First name: ".$_POST["firstname$counter"]."</td>
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?
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?
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." <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ø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>"; }
01. april 2006 - 19:12
#7
Ikke $_POST['zipcode$counter'] men $_POST["zipcode$counter"]
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
01. april 2006 - 20:17
#9
Jeg samler slet ikke på point. I "...." strenge gør man noget ved $variabler, men ikke i '....' strenge
01. april 2006 - 20:20
#10
Så skal nøjes vi med et tak for hjælpen ..og hermed lukker jeg spørgsmålet :)
Vi tilbyder markedets bedste kurser inden for webudvikling