Vraag & Antwoord

Webprogrammeren & scripting

[PHP] Automatisch hogere variabele naam bij while loop

5 antwoorden
  • Ik ben bezig met een systeem, waarbij een aantal velden met gegevens moeten worden opgeslagen in een tabel. Deze textfields zijn onderverdeeld in tabel rijden. De rijen zijn identiek, en je kan zelf bepalen hoeveel rijen je wilt hebben, dmv een while loop. Dit werkt allemaal al, maar ik blijf hangen bij het gedeelte, dat de rijen moeten worden opgeslagen in een MySQL tabel. Je weet van te voren natuurlijk niet hoeveel rijen dit zijn, en dat maakt het lastig. Ik dacht dus dat dat simpelweg op te lossen is dmv nog een while loop, maar dat valt erg tegen... Hier is de uitleg: Een rij heeft de volgende textfields: num; x; description; cost; De while loop die de rijen genereert, nummert de textfields: Rij 1 - num1; x1; description1; cost1; Rij 2 - num2; x2; description2; cost2; Enzovoort. Wat ik dus probeer te doen is dan op de volgende pagina die deze gegevens moet verwerken, ieder veld aan een variabele toe te kennen, bijvoorbeeld: $num1 = $_POST['num1']; Maar aangezien je vooraf niet weet met hoeveel rijen je te maken hebt, kan dit natuurlijk niet... En zo gaat het ook niet werken: $num$i = $_POST['num$i']; $i++; Mijn vraag is dus (ik kom er echt niet uit... :( ) hoe ik dit dan wél op kan lossen... Hier is nog een plaatje van hoe het systeem eruit ziet, om het hele verhaal een beetje te kunnen plaatsen: [img:7689ceaafd]http://www.gamexellence.com/pos.jpg[/img:7689ceaafd] Alvast bedankt![/img]
  • is het niet heel simpel op te lossen ? door een hidden key mee te sturen met het aantal rijen dus in de zin van dit: [code:1:4753f63c5d] // eerst hier de code van de while lus: die alles uitspugt: //en dan aan het einde van de lus: $j ++; } // en dan verder: echo "<input type=\"hidden\" name=\"number_rows\" value=\"".$j."\" />"; // en de de submit en zo [/code:1:4753f63c5d] en dan op de verwerkings pagina weer een lus, maar dan bijv. een for: [code:1:4753f63c5d] $max = $_POST['number_rows'] +1; for($i = 1; $i <= $max; $i++){ // verwerking }[/code:1:4753f63c5d] gaat dat niet werken ?
  • Ik heb alleen nooit met een for loop gewerkt.. Zou je misschien iets meer uitleg over dat soort loops kunnen geven? Hoe zou ik dan de verwerking moeten doen bijvoorbeeld?
  • Variabele variabelenamen zijn wel mogelijk in PHP, maar persoonlijk vind ik dat over het algemeen ranzige oplossingen. Het werkt iig zo: [code:1:88335e004d]${'num'.$i} = $_POST['num$i'];[/code:1:88335e004d] Hiervoor zijn arrays meer geschikt: [code:1:88335e004d]$num[$i] = $_POST['num$i'];[/code:1:88335e004d]
  • Ik heb het inmiddels al opgelost, dmv nog een while loop. Dit klopt trouwens niet, Annie: $_POST['num$i']; Dat moet zo zijn: $_POST['num'.$i']; Ik heb het zo opgelost: //while loopje { $num = $_POST['num'.$i']; $i++; } //einde while loopje Bedankt!

Beantwoord deze vraag

Weet jij het antwoord op deze vraag? Registreer of meld je aan met je account

Dit is een gearchiveerde pagina. Antwoorden is niet meer mogelijk.