Avatar billede mac_allan Nybegynder
19. maj 2003 - 20:29 Der er 18 kommentarer og
1 løsning

Overføre værdi fra sql forspørgelse til en javascript

Jeg har et problem. som jeg håber at i kan hjælpe med. jeg har lavet count forspørgelsen for at få antal af oprettet poster i db. den værdi skal jeg på en eller anden måde ha med over i javascript.



set rs = server.CreateObject("adodb.recordset")
sql ="SELECT * From Categories ORDER BY Categories.id ; "
Set rs= con.Execute(sql)

<script>

var NumberOfMenus= ????

osv

</script>
Avatar billede jytte Nybegynder
19. maj 2003 - 20:39 #1
Du mener vel "SELECT Count(*) as NumberOfMenus..."

og du skal vel bare skrive

var NumberOfMenus=<%= rs("NumberOfMenus")%>
Avatar billede mm12010 Nybegynder
19. maj 2003 - 21:13 #2
hvis det er et tal:
var NumberOfMenus = <%= rs("NumberOfMenus")%>;

hvis det er en tekststreng:
var NumberOfMenus = "<%= rs("NumberOfMenus")%>";
Avatar billede mac_allan Nybegynder
19. maj 2003 - 21:28 #3
undskyld folkens forkert forspøglse. her er den rigtige

set db = server.CreateObject("adodb.recordset")
SQL ="SELECT COUNT(dbid) AS MENU FROM TCategories"
Set db= con.Execute(SQL)


hvis det skulle være noget. <%= db("menu")%>
jeg har prøvet. men virker ikke
Avatar billede mac_allan Nybegynder
19. maj 2003 - 21:31 #4
skriver jeg <%= db("menu")%> uden for javascript (alm. asp side) så for jeg den rigtige værdi.
Avatar billede mm12010 Nybegynder
19. maj 2003 - 21:52 #5
<%
set db = server.CreateObject("adodb.recordset")
SQL ="SELECT COUNT(dbid) AS MENU FROM TCategories"
Set db= con.Execute(SQL)
%>
<script>
var NumberOfMenus = <%= db("menu")%>;
</script>
<%
mere asp
%>
Avatar billede mac_allan Nybegynder
19. maj 2003 - 22:29 #6
Du er ind på det, som er ideen i det. Jeg har prøvet. også med omslutning af div. ()""''
Avatar billede mm12010 Nybegynder
19. maj 2003 - 22:35 #7
må vi se din kode?
Avatar billede mac_allan Nybegynder
19. maj 2003 - 23:46 #8
http://www.dhtmlcentral.com/script/search.asp?category=menu# der kan du hente den org. file Newsmenu. Jeg har så tilføjet database delen.

Hvis du downloader filen så vil du se hvad jeg mener. og en af parameter er antal af oprettet menupunkter ** var nNumberOfMenus=2 ** og det er her jeg er løbet ind i problemmer. for at gør menu kan blive dynamisk så er det nødvendigt at lave count forspørgsel

hilsen
Mac-allan
Avatar billede jytte Nybegynder
20. maj 2003 - 00:06 #9
I den originale fil står der

//How many menus do you have? (remember to copy and add divs in the body if you add menus)
var nNumberOfMenus=2

Har du husket dynamisk at indsætte det rigtige antal divs i din body, for ellers vil det jo ikke virke ?
Avatar billede mac_allan Nybegynder
20. maj 2003 - 01:53 #10
Hej jytte. Den del er lidt svær at forklare. <div id="divTopMenu0" class="clTopMenu"> skifter man divtopmenu**0** ud med f.eks idnr i din db
og laver en løkke, så oprettes der lige så mange menupunkter som der poster i db.

så hvis der 4 poster i db  så opretter den også 4 div.  vel og mærket hvis man sætter  nNumberOfMenus=3 da 0 også tæller med. hvilket er = 4 i alt.

Og nu er vi kommet til sagens kerne. for hvis jeg oprettet en ny post i databasen. så vil nNumberOfMenus=3 ikke blive forøget med 1 da den er statisk

derfor lavede jeg count forspøgelse for at få antal oprette poster i db. og den værdi vil jeg overføre til javascriptet

den eksempel som mm12010 har lavet er faktisk det samme som jeg selv har prøvet. og jeg kan ikke få den til at virke. om det er fordi jeg mangler () " " mm. det håber at i kan være med til at løse

Med venlig hilsen
Mac-allan
Avatar billede jytte Nybegynder
20. maj 2003 - 19:00 #11
Prøv engang med en testudskrift for at se om NumberOfMenus faktisk får en værdi

<script language="javascript">
var NumberOfMenus = <%= db("menu")%>;
alert('NumberOfMenus='+NumberOfMenus);
</script>
Avatar billede jacob-bait.dk Nybegynder
20. maj 2003 - 20:38 #12
Skal du bare finde ud af hvor mange records der er??

var NumberOfMenus = <%= rs.RecordCount %>
Avatar billede mac_allan Nybegynder
20. maj 2003 - 22:23 #13
hej jacob nej den del kan jeg godt finde ud af. men det jeg ikke kan, er at få værdien af records med ind i en javascript.

<script>
var NumberOfMenus = ??? (og jeg har prøvet med f.eks <%= rs("antal") %>)
</scrip>
Avatar billede mac_allan Nybegynder
20. maj 2003 - 22:57 #14
Hej jytte. Jeg må sige enten er du heldig ellers er du dygtig. for værdien af records vises faktisk i alert boksen.
Avatar billede jacob-bait.dk Nybegynder
21. maj 2003 - 06:47 #15
Sørg for at du ikke har lukket recordsettet inden du prøver at trække ud til dit js.
<%
set rs = server.CreateObject("adodb.recordset")
sql ="SELECT * From Categories ORDER BY Categories.id ; "
Set rs= con.Execute(sql)
nrecords = rs("antal")
%>
<script>

var NumberOfMenus = <%=nrecords%>

osv

</script>

~Jacob
Avatar billede mac_allan Nybegynder
21. maj 2003 - 15:05 #16
Hej jacob. det jeg skal bruge er antal af oprette poster i en tabel som hedder TCategories. hvilket er = antal Menupunkter som der skal oprettes (lad os sige at der oprette 3 poster i tabel TCategories. den værdi skal jeg have med ind i javascriptet. da scriptet skal vide hvor mange menupunkter der skal oprettes.)

org.

<script>
var NumberOfMenus=3
</script>

den eksempel jeg selv har lavet magen til denne her. men det virker ikke

<%
set db = server.CreateObject("adodb.recordset")
SQL ="SELECT COUNT(dbid) AS MENU FROM TCategories"
Set db= con.Execute(SQL)
%>
<script>
var NumberOfMenus = <%= db("menu")%>;
</script>

<%
mere asp
%>

jytte har tilgengæld fået værdien antal oprette poster ind i alert boks. men da jeg ikke selv er ferm til javascript. så har jeg brug for jeres hjælp

<script language="javascript">
var NumberOfMenus = <%= db("menu")%>;
alert('NumberOfMenus='+NumberOfMenus);
</script>

Nu har prøvet at forklare det så godt som jeg kan. og samtidigt med, har jeg hvis også fået opdateret forløbet indtil nu.

Hilsen
Mac-Allan
Avatar billede jytte Nybegynder
22. maj 2003 - 00:12 #17
Når alertboxen viser antallet at menuer er det fordi numberOfMenus indeholder dette tal. Dvs. du har fået overført antallet af menuer fra asp til javascript. Det kan du iøvrigt også se ved at højreklikke og vælge vis kilde.

Når du siger at det ikke virker mener du jo nok at dine dropdown-menuer ikke virker. Det er et andet problem som kan have noget at gøre med at dine dynamiske tilføjede div ikke ser helt rigtig ud.

Jeg foreslår at du først prøver at lave en statisk udgave af dine dropdowns med de nye indgange.

Når den virker kan du prøve at lave en dynamisk udgave af den samme. Ved at bruge vis kilde kan du nu sammenligne med den statiske (der virker). Den genererede skal nemlig se nøjagtig ud som den statiske.
Avatar billede mac_allan Nybegynder
26. maj 2003 - 12:10 #18
Hej og tak for hjælpen. jeg har løst problemmet. en særlig tak til jytte.
problemmet stod af flere ting. 1 hvis man skal bruge javascript sammen asp så skal javascript lig fysisk samme sted. ikke som extern fil. for det andet så kan sagten brug vb variabler mm i en javascript. Jeg have ved vane lagt min javascript ud som en extern js fil. Jeg troede ikke at det have nogen betydning. Men gør man det så spiller det ikke. så i har alle haft ret. så Tak for hjælpen

Venlig Hilsen
Mac-Allan
Avatar billede jytte Nybegynder
27. maj 2003 - 07:35 #19
>Mac-Allan

Det er rart at høre at du fik det til at virke.

Du kan nu godt have din javascript i en extern fil -- så skal du bare omdøbe den så den får extension .asp for ellers vil din <%= NumberOfMenus %> ikke blive fortolket som asp-kode men som javascript og så giver det jo ikke så meget mening.
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
Kurser inden for grundlæggende programmering

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