For loop in een echo?
Ik ben met php aan het experimenteren, maar ik breek mij het hoofd over een bepaald ding dat ik wil klaarkrijgen...
Situatie:
Met een while lus haal ik 4 rijen op (met producten).
Die geef ik weer met een echo.
En in deze echo, wordt ook ieders keer een combobox gemaakt, om een aantal te selecteren.
Nu is mijn probleem, als ik het form verzend, en ik die aantallen wil verwerken met php, krijg ik telkens de waarde van het laatste while-product.
De oorzaak is natuurlijk dat ik maar één 'name' attribuut heb kunnen specifiëren van de combobox.
Het ziet er dus als volgt uit:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
while($products = mysql_fetch_array($get_products)) {
echo '
<tr>
<td class="select"><input class="check" type="checkbox" name="checkbox_products[]" value="'.$products['id'].'" /></td>
<td class="prod">'.$products['beschrijving'].'</td>
<td class="prodaantal">
<select name="amount">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
</select>
</td>
<td class="prodprijs">'.str_replace('.', ',', $prijs1 = sprintf("%10.2f\n", $products['prijs'])).'</td>
<td class="prodprijs"> </td>
</tr>';
}
echo '
<tr>
<td class="select"><input class="check" type="checkbox" name="checkbox_products[]" value="'.$products['id'].'" /></td>
<td class="prod">'.$products['beschrijving'].'</td>
<td class="prodaantal">
<select name="amount">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
</select>
</td>
<td class="prodprijs">'.str_replace('.', ',', $prijs1 = sprintf("%10.2f\n", $products['prijs'])).'</td>
<td class="prodprijs"> </td>
</tr>';
}
Is er dus een manier om met een for loop het 'name' attribuut van de combobox automatisch aan te passen?
Ik hoop dat mijn probleem duidelijk is... :)
Bedankt!
Gewijzigd op 18/03/2011 17:15:27 door Xaboteur X
Het probleem is dat ik het name="" attribuut automatisch wil laten aanpassen met een loop, zodat ik niet telkens dezelfde combobox krijg.
Dus in die WHILE lus, wil ik nog een lus om mijn name="" attribuut te laten aanpassen.
Ik weet niet hoeveel dingen je in je database hebt staan en hoe groot formulieren zijn, maar misschien kun je ze in apparte forms zetten en deze een naam geven?
Als het enkelt om het attribuut name van de select gaat, dan kan je voor de echo /start al bepalen welke waarde attribuut name moet krijgen. Dan kan je de variabele gewoon buiten de quotes kwijt in de echo.
En stel nu eens 1 vraag waar maar 1 antwoord op te geven is. M.a.w. wees duidelijk met wat je wilt.
<select name="amount[' . $products['id'] . ']">
Dat lijkt me ook nog het makkelijkst..
Bedankt!
Thx allemaal. ;)
Toevoeging op 18/03/2011 19:35:29:
Toch nog een vraagje, SanThe:
Zijn de eerste en laatste brackets echt nodig, om de waardes te verkrijgen?
Toevoeging op 18/03/2011 20:01:08:
Heb het nu allemaal werkende, hoe ik het wou.
Nogmaals bedankt TheSan!