29. oktober 2001 - 08:51Der er
67 kommentarer og 1 løsning
Dropdown boxe
Hejsa Jeg programmere normal kun i asp (jeg har ik sat mig ind i java script ENDNU :) men jeg har fået en opgave hvor jeg tror at jeger nød til at bruge java script.
opgaven går ud på følgende:
Der skal lavet et pc konfigurator system. Den skal hente alle data fra en ms acess db. der er 6-7 dropdown boxe . den første dropdown boxe er motherboard, den skal så hente alle data omkring motherboard fra en ms access db (det kan jeg sagtens selv lave da det er asp :) men nu kommer problemet! nu skal alle de andre dropdown boxe på siden opdater! så de kun viser de forskellige ting der er i kategori med dette motherboard. såsom ram osv osv. :)
Nogen der har en id´e til hvordan dette kan løses ??? Hvis der er brug for flere oplysninger så sig til :)
if request.form(\"menu\") = 1 THEN lav menu if request.form(\"menu\") = 2 THEN lav menu if request.form(\"menu\") = 3 THEN lav menu if request.form(\"menu\") = 4 THEN lav menu END IF END IF END IF END IF
Man kunne jo også forestille sig noget rds-lignende, hvor alt data er tilgængelig når siden er loadet første gang, så slipper man for mange reloads for at få fyldt div comboboxe op.
Men siden det skal være kompatibelt på alle os og alle browsere kan ms-rds jo ikke bruges, da det er baseret på ActiveX.
Istedet kan der laves et array, som indeholder en struct med div motherboard oplysninger.
Skal de resterende comboboxe udfyldes med forskellige parametre for det valgte motherboard, eller er det fatlagt i db\'en, så eet mb har een mængde ram osv ?
Alle varer, inkl motherboards, ligger i \"vare\" tabellem. De tilhøre alle en katagori, som er angivet i \"kategori\" tabellen.
I motherboard dropdown-boxen skal alle varer af Varetypen motherboard listes og ved valg af motherboard i dropdown-boxen skal alle andre vare vises i andre dropdown-boxe.
Er dette korrekt ?
I så fald skal du angive hvilke varetyper, der skal listes i hvilke dropdown-boxe - eller skal jeg bare lige lave eksemplet - så du selv kan gøre det færdigt ?
yepsen :) ja med mindre at man skal lave en omstruktur så hver vare har deres egen tabel og så hver dropdown box går ind og tjekker i den pågældende tabel!
Hele humlen i ovenstående ligger i de hardkodede items.add()-linier der er. Disse skal naturligvis fjernes og erstattes med noget asp:
<% while not objRs.Eof response.write \"items.add(\"+CStr(objRs(\"kategori\"))+\",\'\"+objRs(\"varetype\")+\"\',\'\"+objRs(\"vare\")+\"\',\"+CStr(objRs(\"pris\"))+\");\" objRs.MoveNext wend %>
ehh - og så skal this.divId lige erstattes med catDesc
Desuden skal du være opmærskom på at id\'erne til de forskellige dropdown-boxe skal komme fra vare-tabellens varetype. Dvs dropdown-boxen til ram skal have id=\"RAM\" hvis du bruger \"RAM\" i vare-tabellen til at angive varetype ram
jeg skal lige have en ting af vide først... jeg skal jo lave noget asp programmering midt i java scriptet, hvad skal man skrive før man begynder ?? jeg mener skal der ik være noget med scriptlanguage=vbscript oder E??
Nej - navnet på din side skal slutte med .asp (eller noget der af din webserver bliver fortolket af asp). Derefter kan du indsætte asp kode hvor du vil ved at angive det med <% og %>
Et trick jeg plejer at bruge når jeg skal lave en connection streng er at oprette en .udl fil.
Feks dbconn.udl. Window kender .udl filer og åbner du filen (dobbeltklik) starter en connection wizard. Og med den har jeg lavet følgende connection streng:
jeg kan ik rigtig for det til og virke jeg får denne fejl Error Type: Microsoft VBScript runtime (0x800A01F4) Variable is undefined: \'ServerMappath\' /drop/drop.asp, line 10
yep...lige en sidste ting (så accepter jeg lige dit svar :) jeg skal jo have nogle flere boxe op såsom kabinet skærm osv osv... hvordan gør jeg det ? er det styret fra db´en eller asp´en ?
nu har jeg fundet ud af at oprette nye dropdownboxe hvor javaen skriver i dem! men hvordan gør du så at den siger at hvis der er blevet valgt noget i kategori 0 så skal den kun vise det !
Den dropdpwn der indeholder de forskellige motherboards har en event der hedder onChange. Den event kalder, som det er nu, fillItem() 2 gange. fillItem() ændrer indholdet af den valgte gruppe (RAM,SOUNDCARD,MONITOR osv.).
feks opdaterer fillItem(1,\'RAM\') ram-dropdown-boxen med varer i katagori 1
jeg har også prøvet <select id=\"motherboard\" onChange=\"fillItem(this.value,\'RAM\');fillItem(this.value,\'SOUNDCARD\');fillItem(this.value,\'TEST\');\">
men den opdater ik test... den viser bare det samme konstant
linien objCb.options[j++] = new Option(catDesc,-1.0); indsætter en linie i den valgte dropdown box med varetypen som tekst. Den kan du jo slette hvis ikke du vil ha den der...
jeg vil gerne have dem til at stå neden under i hianden istedet for ved siden af hianden. Og så vil gerne have det til at stå på denne måde: Motherboard: (dropdownbox) Ram: (dropdownbox) osv osv
siden jeg stort set har kodet det hele og ideen med eksperten (efter min mening) er at lære at gøre det selv, tillader jeg mig at referere til følgende:
\"Kommentar fra smith 30/10 2001 08:37:50:
ja men kan ik rigtig få asp´en til at arbejde sammen med det ! Jeg sætter 100 point mere på hvis du lige kan hjælpe mig helt færdig :)\"
uhhh sorry det havde jeg ik \"set\" / glemt! gør det lige med det samme
Synes godt om
Ny brugerNybegynder
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.