Avatar billede clausga Nybegynder
02. september 2005 - 20:17 Der er 25 kommentarer og
1 løsning

array med 2 værdier eller hvad det nu hedder

Jeg kunne tænke mig at lave sådan jeg kunne sætte disse ind i et felt i en tabel fx.:

1m 10kr, 2m 20kr, 3m 25kr

så det hele var i et felt, men at fx. 1m var $verdi1 og 10kr var $verdi2

og så bagefter kan jeg skrive dem ud i en form hvor kunden så kan selecte hvilken længde og pris

håber i forstår, hvordan gør man det ?
Avatar billede dcheng Novice
02. september 2005 - 20:46 #1
1m 10kr, 2m 20kr, 3m 25kr

er det en streng eller hvor kommer data fra?
Avatar billede clausga Nybegynder
02. september 2005 - 20:56 #2
jamen det er nogle jeg taster ind når jeg opretter produktet.... så ja en streng vi kan kalde den $priser
Avatar billede jakobdo Ekspert
02. september 2005 - 21:14 #3
Test:
$tekst = "1m 10kr, 2m 20kr, 3m 25kr";
preg_match_all('/(\\d+m) (\\d+kr)/', $tekst, $matches);
echo "<pre>";
print_r($matches);
echo "</pre>";
Der får du alle værdier i et array!
Så smider du arrayet igennem foreach($array as $row) og vupti.
Avatar billede clausga Nybegynder
02. september 2005 - 21:16 #4
ok det ser meget godt ud :D men hvad nu hvis det foreste ikke var METER, men fx var CM så ville denne vel ikke virker.... kan du lave sådan at det bare er den foreste værdi den tæller og så beløbbet fx sådan her:

1 10, 2 20, 3 25
Avatar billede jakobdo Ekspert
02. september 2005 - 21:21 #5
Det kan jeg godt ja!
Du burde blot rette koden til:
$tekst = "1m 10kr, 2m 20kr, 3m 25kr";
preg_match_all('/(\\d+) (\\d+)/', $tekst, $matches);
echo "<pre>";
print_r($matches);
echo "</pre>";
Avatar billede clausga Nybegynder
02. september 2005 - 21:22 #6
ok men jeg er ikke helt med på når jeg skriver dem ud får jeg så en

$verdi1 & $verdi2

??
Avatar billede jakobdo Ekspert
02. september 2005 - 21:23 #7
Og det var så forkert:
Denne virker:
preg_match_all('/(\\d+).+?(\\d+)/', $tekst, $matches);
Den kræver dog at du har:
et tal fra 0-uendeligt (heltal) efterfulgt at mellemrum, tegn eller lign, nyt tal fra 0-uendeligt (heltal)
Avatar billede jakobdo Ekspert
02. september 2005 - 21:24 #8
Alle værdierne ligger nu i et array, dem kan du så tilgå med f.eks.
$matches[1][1], $matches[1][2] osv...
Avatar billede clausga Nybegynder
02. september 2005 - 21:37 #9
synes ikke helt jeg kan få det til at virke... Warning: Invalid argument supplied for foreach()
Avatar billede jakobdo Ekspert
02. september 2005 - 21:52 #10
Avatar billede clausga Nybegynder
02. september 2005 - 21:56 #11
ok, men skal have den ind i en OPTION, men mangler nogle nogle tegn her:

    echo <option>$matches[1][$index1] . "meter : " . $matches[2][$index1] . "kr"</option>\n;
Avatar billede jakobdo Ekspert
02. september 2005 - 22:15 #12
Avatar billede clausga Nybegynder
02. september 2005 - 22:21 #13
smid svar og tak for hjælpen :D
Avatar billede jakobdo Ekspert
02. september 2005 - 22:49 #14
Svar!
Avatar billede jakobdo Ekspert
03. september 2005 - 08:16 #15
Takker for point!
Avatar billede clausga Nybegynder
08. september 2005 - 11:28 #16
det virker ikke hvis nu fx det hedder:

182x10cm 100,214x15cm 200

+ jeg vil også gerne have til så både værdi1 og 2 står i select feltet, det som vises i boxen
Avatar billede jakobdo Ekspert
08. september 2005 - 11:31 #17
Så må du jo forklare dig noget bedre!
Vis mig alle mulige værdier du kan have.
Og hvad du rent faktisk ønsker!
Avatar billede clausga Nybegynder
08. september 2005 - 11:50 #18
182x10cm 100,214x15cm 200
10m 20, 15m 30

det er de 2 jeg vil komme til at bruge, og så skal

value i select være prisen altså fx (200) og det der skal vises i boxen skal være værdi 1 + værdi 2
Avatar billede jakobdo Ekspert
08. september 2005 - 12:01 #19
Du vil gerne ende med at have:
$var1 = "182x10cm 100,214x15cm";
$var2 = 200;

$var1 = "10m 20, 15m";
$var2 = 30;
Avatar billede jakobdo Ekspert
08. september 2005 - 12:03 #20
preg_match_all('/(.+?,.+?)\\s(\\d+)/', $tekst, $matches);
Avatar billede clausga Nybegynder
08. september 2005 - 16:19 #21
nej ikke helt sådan, sådan her:

182x10cm 100,214x15cm 200

$var1 = "182x10cm"; $var2 = "100";

$var1 = "214x15cm"; $var2 = "200";
Avatar billede jakobdo Ekspert
09. september 2005 - 08:05 #22
Hvad så med:
preg_match_all('/\\s?(.+?)\\s(\\d+),?/', $tekst, $matches);
Avatar billede clausga Nybegynder
10. september 2005 - 09:24 #23
ja nu virker det fint :D men hvad gør jeg egentlig hvis jeg vil have 2 værdier med fre select på den næste side som form'en går til ? kan man have 2 i value ?
Avatar billede jakobdo Ekspert
10. september 2005 - 10:17 #24
Kan du forklare og evt vise med nogle eksempler hvad du mener?
Avatar billede clausga Nybegynder
10. september 2005 - 13:52 #25
Ja jeg kan prøve ;)

Jeg vil gerne have begge værdier med over på næste side når jeg submitter, både prisen, og antal meter ? altså i value skal jeg have 2 værdier... er ked af jeg er lidt besværlig :( ;)
Avatar billede jakobdo Ekspert
10. september 2005 - 16:46 #26
Det kan du jo godt få hvis du putter både meter og pris i value="182x10cm 100"
At der så kun står 182x10cm når man vælger, eller kun prisen, det bestemmer du jo selv.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester