kjetil_b Skrevet 15. august 2006 Del Skrevet 15. august 2006 Lager et perl script som skal fungere nesten som et kasseapparat. Det jeg sliter med nå er å få lagt inn varene via et skjema inn i systemet. Altså ikke kjøpsprosessen, men rett og slett innlegging av varer. Databasen skal være i orden. Varene vises slik: Feltnavnene er slik: Produkt 1 navn: prod1-1 Produkt 1 pris: prod1-2 Produkt 1 status: prod1-3 Produkt 2 navn: prod2-1 osv... Det siste feltet blir laget slik i dette tilfellet. prod3-1, prod3-2 osv... Altså siste vare + 1. Men nå klarer jeg ikke å finne ut hvordan jeg kan få sjekket om feltene er tomme o.l. Scriptet må jo kunne kjøres uansett om det er 2 eller 10 varer. Det jeg tenkte at kunne fungere, var å sjekke de eksisterende varene opp mot databasen slik: my $sth = $dbh->prepare("select * from matliste order by id DESC") or feilmelding("Kan ikke velge fra tavle: ",$dbh->errmsg); $sth->execute(); while(my ($id, $produkt, $pris, $status) = $sth->fetchrow_array()) { # Så få fram alle feltene i formen og finne om det eksisterer noen som passer med $id foreach $key (keys(%FORM)) { ($prod,$felt) = split(/-/,$key); $prod =~ s/prod/ /; if ($prod == $id) { # gjøre noe fornuftig } } Men nå vet jeg ikke hvordan jeg skal gjøre dette videre. Vi vil sjekke om feltene er tomme, og i såfall slette varen. Samtidig må jeg sjekke om en ny vare er lagt inn. Kult hvis noen kunne gitt noen råd. Står litt fast her. Lenke til kommentar
Torbjørn Skrevet 16. august 2006 Del Skrevet 16. august 2006 du kan gi alle felter samme navn og hente dem ut som et array, demo html: <form method="post"> <input name="produkt" value="Pizza"><br> <input anme="produkt" value="Iskrem"><br> <input type="submit"> </form> og i cgi-sriptet #!/usr/bin/perl use strict; use CGI; my $cgi = new CGI; my @produkter = $cgi->param('produkt'); print $cgi->header; print "Følgende prdukter ble funnet:<br>"; print $_, "<br>\n" for @produkter; print "<i>håper det smaker!</i><br>\n"; Lenke til kommentar
kjetil_b Skrevet 16. august 2006 Forfatter Del Skrevet 16. august 2006 Tusen takk for gode forslag. Lurer litt på hvordan jeg skal gjøre det videre. Jeg kan jo da også ha samme navn på alle pris feltene, og status, men hvordan skal jeg få lest de av slik at riktig pris, navn og status kommer sammen, slik at jeg kan få sjekket dem? Lenke til kommentar
Torbjørn Skrevet 16. august 2006 Del Skrevet 16. august 2006 de vil ha samme rekkefølge i arrayet du samler dem opp i Lenke til kommentar
kjetil_b Skrevet 22. august 2006 Forfatter Del Skrevet 22. august 2006 Må innrømme at jeg rett og slett sliter med checkboxer til dette scriptet. Har kommet til varekjøp-biten, og der skal jeg ha en checkbox om hvorvidt en vare er levert eller ikke. while(my ($id, $produkt, $pris, $status) = $sth->fetchrow_array()) { print checkbox(-name=>'levert', -checked=>0, -value=>$id, -label=>'levert'); } Jeg får det rett og slett ikke til å fungere ut av dette. Resultatet stemmer ikke med det jeg krysser av. Slik prøver jeg å hente ut informasjonen: my @markert = $cgi->param('levert'); foreach $x (@id) { $x = $x - 1; if ($markert[$x] == $x) { print qq(Ja <input type="hidden" value="Ja" name="levert" /><br \>); } else { print qq(Nei <input type="hidden" value="Nei" name="levert" /><br \>); } } Tror jeg er litt på villspor, så håper noen kan få meg på rett spor igjen Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå