Toon posts:

[PL] variabelen met een nummer

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik post via een HTML formulier enkele variabelen, deze hebben de naam gerecht1, gerecht2 ... etc. Nu bij het uitvoeren wil ik dus dat PERL deze variabelen wegzet in .txt bestand. Dit wegschrijven levert geen problemen op, maar hoe moet ik de variabelen ophalen? Omdat het aantal variabel is, gebruik ik een for loop:
code:
1
2
3
4
5
  $totaal = $input->param('totaal');
  for $i (1 .. $totaal - 1) {
     $gerecht1 = $input->param('gerecht1');
     print "$gerecht1";
  }

nu moet dus dat gerecht 1 zeg maar $gerecht$i worden --> dit werkt natuurlijk niet; hoe moet ik dit aanpakken, en heeft misschien iemand een vb. of tutorial voor me?!

Ben overigens een n00b op PERL gebied

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Kan je er geen array van maken?
in je form een naam ala 'blaa[]' meegeven en (bij php heb je dan automagisch een array, bij perl weet ik het niet) dat zou als array geinterpreteerd moeten worden.

Verwijderd

Topicstarter
ik zal eens proberen ...

Verwijderd

Topicstarter
code:
1
2
3
4
  for $i (1 .. $totaal - 1) {
     @gerecht[$i] = $input->param('gerecht[$i]');
     print @gerecht[$i];
  }

deze pakt hij dus niet, maar:
code:
1
2
3
4
  for $i (1 .. $totaal - 1) {
     @gerecht[1] = $input->param('gerecht[1]');
     print @gerecht[$i];
  }

pakt hij wel ... doe ik hier iets doms fout?!
de variabele wordt zo verstuurd:
code:
1
      print "<input type=\"text\" name=\"gerecht[$i]\" value=\"$gerecht\" style=\"width:390px\">\n";

Verwijderd

Hiermee zou het moeten lukken :
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
#!/usr/bin/perl

use CGI;


my $input = new CGI;

print "Content-type: text/html\n\n";

foreach ( $input->param() )
{
      print "\n$_ -> ", $input->param($_);
}

  • Michael
  • Registratie: Maart 2000
  • Laatst online: 20-07 17:52
Op vrijdag 03 mei 2002 12:41 schreef PatrickPietens het volgende:
code:
1
2
3
4
  for $i (1 .. $totaal - 1) {
     @gerecht[$i] = $input->param('gerecht[$i]');
     print @gerecht[$i];
  }

deze pakt hij dus niet
1. Voor losse elementen in een array gebruik je gewoon $gerecht[1] ipv @gerecht[1]
2. ('gerecht[$i]') gaat niet werken omdat je single quotes gebruikt, probeer double quotes :-)
, maar:
code:
1
2
3
4
  for $i (1 .. $totaal - 1) {
     @gerecht[1] = $input->param('gerecht[1]');
     print @gerecht[$i];
  }

pakt hij wel ... doe ik hier iets doms fout?!
zie boven
de variabele wordt zo verstuurd:
code:
1
      print "<input type=\"text\" name=\"gerecht[$i]\" value=\"$gerecht\" style=\"width:390px\">\n";
Probeer ipv double quotes te escapen op sommige plekken is single quotes te gebruiken.. :)


PS. zo leert ie er nog nix van heh temmmmink
Pagina: 1