For loop in een echo?

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Xaboteur X

Xaboteur X

18/03/2011 17:14:20
Quote Anchor link
Hallo allemaal,

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)
PHP script in nieuw venster Selecteer het PHP script
1
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">&nbsp;</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
 
PHP hulp

PHP hulp

26/11/2021 23:56:35
 
Yea Rupie

Yea Rupie

18/03/2011 17:21:33
Quote Anchor link
Als ik de titel lees, zou ik denken dat je een hele webpagina in een echo zet, je mag hem zovaak als je wil gebruiken?

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
echo "hoi<";
echo "br /";
echo "> X";
?>


Dit geeft gewoon:
hoi
X
 
Xaboteur X

Xaboteur X

18/03/2011 17:26:06
Quote Anchor link
Je hebt mijn bericht niet goed gelezen denk ik... :)

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.
 
Yea Rupie

Yea Rupie

18/03/2011 17:30:11
Quote Anchor link
Klopt niet goed gelezen,
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?
 
Noppes Homeland

Noppes Homeland

18/03/2011 17:33:01
Quote Anchor link
De echo afsluiten en openen op de juiste plek de loop er in en klaar is klare

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

- SanThe -

18/03/2011 17:46:15
Quote Anchor link
<select name="amount">

<select name="amount[' . $products['id'] . ']">
 
Xaboteur X

Xaboteur X

18/03/2011 19:31:44
Quote Anchor link
SanThe, dat ik daar niet ben opgekomen!
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!
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.