20. juli 2007 - 09:41Der 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.
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.
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.
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>
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.
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
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.
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.