01. maj 2006 - 22:05Der er
17 kommentarer og 1 løsning
Brug af querystring i form action
Hej nørder :)
Hvordan kan det være at jeg ikke kan sætte action til at være en querystring, i et form tag? For når jeg submitter, så siger den at siden ikke kunne vises, men hvis jeg skriver nedenstående querystring manuelt op i adresselinien, så virker det fint.
Kan det overhovedet lade sig gøre, eller skal det være en fysisk fil, hvis man kan sige det sådan? Og i så fald, hvis det kan lade sig gøre, hvordan? :)
hvis den er tom skulle den reloade samme fil, men det kan godt være at IE kan drille lidt eller den server man bruger kan drille lidt da default side navnet ikke er det samme som fil navnet..
Men jeg ville godt kunne undvære at skrive den fysisk fil med, altså "minside.asp". Ville bare vide om det kan lade sig gøre, på en eller anden måde. Det er bare en lille detalje med at jeg ikke vil have vist min fysiske fil (default.asp) i adresselinien, men KUN querystrings osv.
Men du kan f.eks. tage en kig på nedenstående side.
Hvis du hurtigt prøver at købe et produkt, smutter ind i indkøbskurven og trykker "Bestil varer", og her trykker du bare "Hent" for at hente login oplysninger, du behøver ik skrive noget i felterne. Men lig her mærke til adresselinien, der får du ikke filnavnet at se, men derimod bare at der bliver tilføjet en ekstra parameter til querystringen, som jeg forsøger i mit eks. Det kunne jeg godt tænke mig at vide hvordan de er sluppet omkring med :)
Dog var der en måde som jeg havde forstillet mig at det kunne gøres. Evt. ved at sende til en ny side, f.eks. tjecklogin.asp. Her ville jeg tjecke for oplysninger, smide dem i et par sessions og så redirect'e tilbage, sådan man ikke når at se adresselinien ændre sig. :)
Ved ikke om det lyder som en brugbar metode?
Men nu indrømmer jeg godt nok at jeg er mest til at lave mine scripts i så få filer som muligt. Helst i én stor fil, med en masse funktioner, som jeg så kan kalde hist og her.
Men hvis det mit spørgsmål går ud på, ikke kan komme til at virke på nogen måde, uden at skulle skrive den "fysiske fil", så må jeg jo lære at leve med det :)
Ja det vil måske være muligt, men jeg kender ikke så meget at hvordan man får skjult filnavnet. Problemet er at man jo er nød til at skrive dfilnanvet også selvom man redirecter så måske det skal laves med noget javascript.
Okay, Så konklusionen er at man SKAL sende til en fysisk fil fra en form! Det irriterer mig lidt at jeg ikke kan gemme filnavnet, og javascript er jeg ikke så skarp i, at lige ved hvordan det skulle kunne løses.
du kan vel egentlig, lave dem som input type hidden, istedet for at lægge dem i querystrengen, så kan du posten til samme side, og requeste form elementer istedet for querystreng-elementer
Den måde jeg gør det på, er at jeg har en side, hvor på jeg skal hente nogle kundeoplysninger (jeg er ved at lave en shop). HVIS man allerede er bruger på siden, kan man skrive sit tlf. nr. og password, og så auto udfylder den felterne i kunde oplysninger. Når man så trykker "hent kundeoplysninger", sender den til samme side, dog lige med den ændring, at den putter f.eks. "&action=get_logininfo" ind i querystringen. Og så har jeg en if sætning som tjecker på det og henter kundeoplysninger osv. bla bla. Det tror jeg snildt du forstår :)
MEN, jeg vil helst poste til samme side, UDEN at filnavnet kommer til at stå i adresselinien. Og det er så også lykkedes ved at skrive http://www.minside.dk/, i stedet for filnavnet. Men det kunne godt være der fandtes en metode til opsnappe hvad der stod i adresselinien, så man var fri for at skrive det manuelt, af hensyn til hvis shoppen f.eks. skulle flyttes osv. :)
cpufan > Jeg kan se din pointe nu. Og ja, det var da en lidt anden synsvinkel jeg lige fik på det. Det tror jeg sagtens jeg kan bruge til noget.
Men så lige et spørgsmål til. Kan det lade sig gøre at manipulere en if sætning, hvis jeg tjecker på noget i querystring, og udfører noget alt efter hvad der står der?
Men i så fald, hvis du så gerne vil have del i de 15 point, så må du hellere smide et svar :) hehe. Så hvis ikke eagleeye kommer med et hurtigt svar, får du bare point. Nu er det heller ikke fordi 15 point betyder særlig meget. Hehe
Altså lave et frameset i den fil som loades først på din server typisk vil det være default.asp eller index.htm(l) det kommer an på server opsætningen og framset kan se sådan her ud med en frame:
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.