[php]form afhandeling met teveel variabelen

Pagina: 1
Acties:

  • Icheb
  • Registratie: Augustus 2001
  • Laatst online: 01-09 15:08
Ok, ik heb een dynamisch formulier gemaakt waarbij je zelf een groot aantal dingen in kan stellen (als bezoeker) voor je het invult, maar al die gegevens moeten ook worden meegemaild op de pagina erna.

Het gaat hier om een 'testprojectje' voor een boekwinkel.
De bedoeling is dat de persoon die wilt bestellen eerst zelf het aantal boeken op kan geven dat hij wil bestellen zodat er geen 'loze' text input bij hoeft...

Nu heb ik zelf een beetje zitten improviseren en tot nu toe ging dat redelijk, maar nu begint het wat vervelender te worden omdat PHP mijn varabel namen niet pakt.

Om de juiste hoeveelheid invulvelden aan te maken gebruik ik deze routine :
PHP:
1
<?$nummer=0;$naam=1;    while ($aantalboeken > $nummer) { echo "<tr><td><hr width=30% align=left><b>";echo "Nummer boek $naam <input type=\"text\" name=\"nummerboek_$naam\" size=\"4\"><br>";echo "Titel boek $naam <input type=\"text\" name=\"titelboek_$naam\" size=\"15\"<br>";echo "Schrijver boek $naam <input type=\"text\" name=\"schrijverboek_$naam\" size=\"15\"<br>";$nummer++;$naam++;}?>

$aantalboeken is het resultaat op de input die de klant heeft gedaan bij de keuze hoeveel boeken die wilt bestellen.

Nu wil ik de volgende routine gebruiken om het op de volgende page af te handelen (ik stuur $aantalboeken ook weer mee als hidden)
PHP:
1
<?while ($aantalboeken > $nummer) {     $bericht = $bericht . "Nummer boek $naam : $nummerboek_$naam\n";    $bericht = $bericht . "Titel boek $naam : $titelboek_$naam\n";    $bericht = $bericht . "Schrijver boek $naam : $schrijverboek_$naam";    $bericht = $bericht . "\n-------";$nummer++;$naam++;}?>

Deze routine weigert gewoon te werken...
Dit komt door de $..._$naam variabelen, maar ik weet geen andere manier om dit goed op te vangen.
Als ik bijv probeer :
PHP:
1
<?echo "nummer : $nummerboek_1";?>

gaat dit gewoon wel goed...

Kan dit op een andere manier ?

Bij voorbaad dank

sebsoft.nl


  • Crazy D
  • Registratie: Augustus 2000
  • Laatst online: 16:14

Crazy D

I think we should take a look.

$nummerboek_naam
in plaats van
$nummerboek_$naam
gebruiken?
Ik denk dat php het niet zo tof vind als je in je variabele naam een $ hebt staan.

Exact expert nodig?


  • Grum
  • Registratie: Juni 2001
  • Niet online
zoek maar op variable variables op de phpsite :)

  • Icheb
  • Registratie: Augustus 2001
  • Laatst online: 01-09 15:08
Op woensdag 08 mei 2002 13:45 schreef Crazy_D het volgende:
$nummerboek_naam
in plaats van
$nummerboek_$naam
gebruiken?
Ik denk dat php het niet zo tof vind als je in je variabele naam een $ hebt staan.
Dit kan een beetje niet aangezien in die lap code steeds de naam van de variabele moet worden bepaald
want $nummerboek_1 bevat het nummer wat ik moet hebben, $naam bevat die 1...
Nu heb ik hier een boek over php, maar daar begrijp ik geen *** van in het stukje over variabele variabeles.

Dus ik moet ervoor zorgen dat hij als $aantalboeken gelijk is aan 10 hij hetvolgende ongeveer doet :
* Zorg ervoor dat $naam bij 1 gelijk is aan 1, bij 2 gelijk is aan 2 ect.
* combineer de $naam en de $nummerboek_ tot $nummerboek_1, lees de gegevens daaruit, voeg die toe aan $bericht
* doe alles weer opnieuw tot $aantalboeken = $naam zodat alle boeken geweest zijn.

* Icheb begint te denken dat deze manier niet zo goed is geweest... :r

sebsoft.nl


  • TheDane
  • Registratie: Oktober 2000
  • Laatst online: 09:51

TheDane

1.618

how about this:
PHP:
1
<?$nummerboek[$i];?>

  • Sjaaky
  • Registratie: Oktober 2000
  • Laatst online: 03-09 23:48
Het is waarschijnlijk handiger om eerst een overzicht te genereren. In het overzicht kan je dan kiezen welk boek je wilt bewerken. Dus je bewerkt slechts één boek tegelijk.

  • Icheb
  • Registratie: Augustus 2001
  • Laatst online: 01-09 15:08
Op woensdag 08 mei 2002 14:07 schreef TheDane het volgende:
how about this:
PHP:
1
<?$nummerboek[$i];?>
Nu weet ik dat ik heel erg n00b achtig gaat klinken en dat ben ik ook op php gebied maarre uhh what the h*ll betekend $i ?
ik heb al ff zitten proberen maar het enige wat ik krijg als resultaat op de pagina zijn lege ruimtes alsof het niet gedefinieerd is...

Als je hiermee bedoelt dat alle gegevens in een array moeten komen te staan ben ik het daar niet erg mee eens aangezien ik dan eerdere pagina's opnieuw moet maken :(

Maar dit weet ik niet zeker omdat ik op dit moment nog lichtgevend groen ben op PHP gebied |:( (en ik heb er hier boeken over die ik voor een deel al heb gelezen, maar het zijn meer samenvattingen zo te zien, volgens mij ontbreekt de helft)

sebsoft.nl


  • TheDane
  • Registratie: Oktober 2000
  • Laatst online: 09:51

TheDane

1.618

Op woensdag 08 mei 2002 14:24 schreef Icheb het volgende:

[..]

Nu weet ik dat ik heel erg n00b achtig gaat klinken en dat ben ik ook op php gebied maarre uhh what the h*ll betekend $i ?
ik heb al ff zitten proberen maar het enige wat ik krijg als resultaat op de pagina zijn lege ruimtes alsof het niet gedefinieerd is...

Als je hiermee bedoelt dat alle gegevens in een array moeten komen te staan ben ik het daar niet erg mee eens aangezien ik dan eerdere pagina's opnieuw moet maken :(

Maar dit weet ik niet zeker omdat ik op dit moment nog lichtgevend groen ben op PHP gebied |:( (en ik heb er hier boeken over die ik voor een deel al heb gelezen, maar het zijn meer samenvattingen zo te zien, volgens mij ontbreekt de helft)
$i is gewoon een tellertje wat loopt van euhh 1 tot 't aantal boeken, dus je maakt er een array van waar je je gegevens in zet; kun je zover uitbreiden als nodig is, en je hebt geen fixed aantal boeken/namen etc nodig

  • JSchut
  • Registratie: Februari 2002
  • Laatst online: 14:44

JSchut

.....

[qoute]
Dit kan een beetje niet aangezien in die lap code steeds de naam van de variabele moet worden bepaald
want $nummerboek_1 bevat het nummer wat ik moet hebben, $naam bevat die 1...
Nu heb ik hier een boek over php, maar daar begrijp ik geen *** van in het stukje over variabele variabeles.
[/quote]

doe dan dit
PHP:
1
<?$boek = "nummerboek_" . $naam;echo $$boek;?>

$boek is nu bijv nummerboek_1
$$boek de waarde daarvan

je verhaal over variabele vars :Y)

PSN jschut_82 | Xbox: JSchut82


  • Icheb
  • Registratie: Augustus 2001
  • Laatst online: 01-09 15:08
Op woensdag 08 mei 2002 14:39 schreef JSchut het volgende:
[qoute]
Dit kan een beetje niet aangezien in die lap code steeds de naam van de variabele moet worden bepaald
want $nummerboek_1 bevat het nummer wat ik moet hebben, $naam bevat die 1...
Nu heb ik hier een boek over php, maar daar begrijp ik geen *** van in het stukje over variabele variabeles.
doe dan dit
PHP:
1
<?$boek = "nummerboek_" . $naam;echo $$boek;?>

$boek is nu bijv nummerboek_1
$$boek de waarde daarvan

je verhaal over variabele vars :Y)
[/quote]

Het werkt !!

Niet helemaal zoals ik gewilt had want echo "$$boek"; doet ie niet helemaal perfect, maar als ik de gegevens in die variabele naar een andere variabele copyeer werkt het perfect :D

Bedankt !!

sebsoft.nl


  • Hydra
  • Registratie: September 2000
  • Laatst online: 26-04 10:16
Foute oplossing. Je kunt nl. in forms gewoon arrays gebruiken. Als je twee inputs hebt, met de namen field[a] en field[b], maakt PHP daar automagisch een array van. Je kunt met sizeof() bepalen hoe groot 'ie is (geen gezeur met hidden inputs), en er in een simpele for-loop doorheen wandelen. Je kunt als array-indices zowel strings als integers gebruiken.

https://niels.nu

Pagina: 1