Avatar billede ecpower Nybegynder
20. juli 2007 - 09:41 Der er 9 kommentarer og
1 løsning

Flere URL parametre

Hej er der nogen der kan vise et lille eksempel på hvordan man skriver et link der dels indsætter et URL parameter der stammer fra en databaseforespørgsel og tillige medsender en startdato og en slutdato som brugeren har tastet ind. Jeg kan godt fange værdien fra databasefeltet, men hvordan får jeg værdien fra tekstboxene som brugeren har indtastet.

Foreløbig ser mit link såddan ud:

/resourcereport/timesheetprt.asp?<%= Server.HTMLEncode(MM_keepNone) + ((MM_keepNone!="")?"&":"") + "No.=" + res.Fields.Item("No.").Value +"&" +"startdate="+[Her vil jeg gerne indsætte startdatoen] +"&" +"enddate="+[Her vil jeg gerne indsætte slutdatoen]%>
Avatar billede w13 Novice
23. juli 2007 - 15:32 #1
Tjaeh, det kommer an på, hvor dette link befinder sig, når du vil indsætte datoerne.. Kan du ikke poste lidt mere kode? Er det på samme side skal du jo ud i noget javascript.
Avatar billede ecpower Nybegynder
23. juli 2007 - 16:31 #2
Undskyld, Jeg er måske lidt upræcis i min formulering. Jeg befinder mig på en side hvortil jeg har fået returneret netop ét record, nemlig et ID og et navn for den person jeg skal finde "tidsposter" for i nogle andre tabeller.
Koden ovenfor ligger som link på et ikon på, og det kalder siden med detaljerne. Det virker helt fint bortset fra at jeg får returneret alle records i tidsposttabellerne for den givne person.

Mine forespørgsler på detaljesiden er gjort klar til at modtage start og slutdato som URL parametre samt at lave en sum på en af kolonnerne.
Det er altså alene et spørgsmål om at begrænse resultatsættet til en given periode bestemt af brugeren, ved at han udfylder et tekstfelt med startdato og et med slutdato.

Der er nok noget jeg ikke har forstået, med hensyn til hvordan det skal fungere. Jeg ved ikke rigtigt hvilken kode jeg skal vise yderligere. Lige nu er det lige så meget princippet i hvordan denne opgave kan løses jeg er interesseret i.

Venlig hilsen
Karl Henrik
Avatar billede w13 Novice
23. juli 2007 - 17:09 #3
Så man udfylder de to datofelter og klikker på ikonet og så sendes man til en ny side?
Avatar billede ecpower Nybegynder
23. juli 2007 - 19:49 #4
Ja det er korrekt
Avatar billede w13 Novice
23. juli 2007 - 20:19 #5
Teorien:

<p>Startdato: <input type="text" id="startdato1" onkeydown="TransferDates()"></p>
<p>Slutdato: <input type="text" id="slutdato1" onkeydown="TransferDates()"></p>

<p><a id="icon1" href="/resourcereport/timesheetprt.asp?<%=Server.HTMLEncode(MM_keepNone)+((MM_keepNone!="")?"&":"")+"No.="+res.Fields.Item("No.").Value%>"><img src="bla.gif"></a></p>

<script language="JavaScript" type="text/JavaScript">
function TransferDates(){
  document.getElementById('icon1').setAttribute('href','/resourcereport/timesheetprt.asp?<%=Server.HTMLEncode(MM_keepNone)+((MM_keepNone!="")?"&":"")+"No.="+res.Fields.Item("No.").Value+"&startdate='+document.getElementById('startdato1').getAttribute('value')+'&enddate='+document.getElementById('slutdato1').getAttribute('value'))
}
TransferDates();
</script>

Virker forhåbentlig :) Skal nok rettes til, mere så du måske kunne gennemskue ideen
Avatar billede w13 Novice
23. juli 2007 - 20:20 #6
hov:
-------------------------------------------
<p>Startdato: <input type="text" id="startdato1" onkeydown="TransferDates()"></p>
<p>Slutdato: <input type="text" id="slutdato1" onkeydown="TransferDates()"></p>

<p><a id="icon1"><img src="bla.gif"></a></p>

<script language="JavaScript" type="text/JavaScript">
function TransferDates(){
  document.getElementById('icon1').setAttribute('href','/resourcereport/timesheetprt.asp?<%=Server.HTMLEncode(MM_keepNone)+((MM_keepNone!="")?"&":"")+"No.="+res.Fields.Item("No.").Value+"&startdate='+document.getElementById('startdato1').getAttribute('value')+'&enddate='+document.getElementById('slutdato1').getAttribute('value'))
}
TransferDates();
</script>
--------------------------------------------
Avatar billede w13 Novice
23. juli 2007 - 20:23 #7
Doh.. jeg fucker altid op, når jeg blandet ASP og JavaScript. Nærmere sådan her:
-------------------------------
<p>Startdato: <input type="text" id="startdato1" onkeydown="TransferDates()"></p>
<p>Slutdato: <input type="text" id="slutdato1" onkeydown="TransferDates()"></p>

<p><a id="icon1"><img src="bla.gif"></a></p>

<script language="JavaScript" type="text/JavaScript">
function TransferDates(){
  document.getElementById('icon1').setAttribute('href','/resourcereport/timesheetprt.asp?<%=Server.HTMLEncode(MM_keepNone)+((MM_keepNone!="")?"&":"")+"No.="+res.Fields.Item("No.").Value%>&startdate='+document.getElementById('startdato1').getAttribute('value')+'&enddate='+document.getElementById('slutdato1').getAttribute('value'))
}
TransferDates();
</script>
Avatar billede ecpower Nybegynder
24. juli 2007 - 11:10 #8
Det virker næsten perfekt med din kode. Jeg får dog en "Udført men fejl på siden"

Fejl: 'document.getElementById(...)'er null eller ikke et objekt

URL'en kommer frem på bundlinjen som den skal når jeg holder musen over ikonet, men den viser ikke den karakter jeg indtastede til sidst.
Hvis der fx. står 2007-07-24 i "startdato" vises kun startdato=2007-07-2
i URL'en, men når jeg fortsætter med at skrive i slutdato  fx. 2007-07-30 vises
startdato=2007-07-24&slutdato=2007-07-3
Hvis jeg skriver 2007-07-300 vises 2007-07-30 i URL'en og når jeg submitter kommer den rigtige side med det korrekt afgrænsede resultatsæt.


Hvis jeg returnerer en hel dato til boxen ved hjælp af et kalenderobjekt vises URL,en som tom indtil jeg har indtastet en karakter, så vises den korrekt.

Nogen Ide til hvad der er galt?

Venlig hilsen
Karl Henrik
Avatar billede ecpower Nybegynder
24. juli 2007 - 15:06 #9
Det med karakterene er løst ved at man skifter med tabulatoren istedet for med musen, så opdaterer den korrekt. Den melder dog stadig fejl på siden, men det betyder ikke så meget når det alligevel virker.
Send et svar så får du pointene
mvh Karl Henrik
Avatar billede w13 Novice
24. juli 2007 - 15:36 #10
Ellers kan problemet løses ved at bruge onkeyup i stedet for onkeydown - det havde jeg lige glemt.

Og fejlen siger så åbenbart, at en af vores "document.getElementById(noget)" ikke eksisterer. Hvilket er mærkeligt, når du siger, det virker.. Hmm.
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