13. august 2001 - 09:15Der er
40 kommentarer og 3 løsninger
Submit kun 1 gang...
Jeg kalder i dag en side, som opretter en ordre med en knap. Da siden tager lidt tid om at starte, kan man klikke flere gange, inden der sker noget. Derved oprettes flere ordrer. Hvordan undgår jeg det?
Hvis jeg bruger din kode, så vil den slet ikke sende. Det er nok fordi, jeg lige har prøvet. Måske skal man sætte cookiens levetid til 10 sekunder eller slette den, når ordren er gennemført?
kartolux: sådan som det er nu, gemmer den cookie indtil du lukker browseren og åbner den igen... Jeg kan godt sætte den til 10 sekunder. Der kommer lige noget ny kode om 10 sekunder:)
Problemet er, at du stadig har cookien fra før liggende i systemet.
Du kan enten slette den cookie, eller også ændre den kode jeg lige sendte dig så den ikke undersøger om der er en cookie i forvejen (udkommenter if og else linierne)...
Problemet er, at jeg godt kan slette mine cokkies, men det er en forkert, jeg sletter, så andre data går tabt. Hvis man nu kaldte den cookie, du skriver for \"Submit\", hvordan ville dokument.cookie sætningen så se ud?
Har du adgang til hele frameset filen? Så skal du nemlig bare lave den her :
<script language=\"javascript>
function afsend() { if(document.cookie == \"\") { alert(\"afsender!\"); document.location.href=\'kuponmailsubmit.asp?ArticleId=<% =articleID %>&Antal1=<%=KuponFeltValue1%>&Antal2=<%=KuponFeltValue2%>&Antal3=<%=KuponFeltValue3%>&Antal4=<%=KuponFeltValue4%>&pro1=<%=pro1%>&pro2=<%=pro2%>&pro3=<%=pro3%>&pro4=<%=pro4%>&levid=<%=levid%>\'; var d = new Date(); var timeout = 10; // antal sekunders varighed d.setTime(d.getTime()+(1000*timeout)); document.cookie = \"name=Submit;sendt;expires=\"+d.toUTCString();
setien: Nej, men jeg kan ikke få den til at finde den rigtige cookie :0)
Jeg har en cookie, hvor en brugers data ligger. Den bliver slettet, eller også siger knappen \"Du har sendt før\" når jeg bruger denne funktion.
Så cookien fra din kode skal måske hedde noget andet, jeg kan ærligt talt ikke gennemskue det :0)
Det jeg helst ville have var en funktion, der var STENSIKKER. Man må aldrig kunne oprette 2 ordrer, fordi man trykker 2 gange. Derfor tænkte jeg, at cookie-systemet måske ikke var hurtigt nok. Måske skal cookien skrives med sessionid på serveren med en levetid på 20 sekunder?
kartolux : Ah! Jeg fangede ikke at du brugte en cookie allerede - problemet er, at du kun kan have én cookie per side. Du skal sørge for at smide den eksisterende information sammen med den information om at der ER blevet submittet, og så tage den information separat ud - og så skal du ikke have expires på så kort tid.
Det kan godt være lidt tricky, men det virker helt sikkert. Men det kan godt være at det virker bedre med en hidden form element til at smide information i.
>>kartolux Jeg sad og tænkte på, om du skriver i en frame eller det er et popup-vindue.
Hvis du nu skriver det i en frame indeni et frameset, kan du så ikke få adgang til at sætte en global variabel i frameset-dokumentet, altså: <script>var submitted=false;</script>
setien: Jeg tror, jeg vil droppe cookie ideen - jacoba har lavet en spændende mulighed her til sidst.
roenving: Jeg bruger ikke frames eller popup-vinduer.
jacoba: Jeg har nu testet din seneste idé - den med \"olsen\". Den ser meget spændende ud. Hvis du nu kigger på denne kode, som var oplægget til selve dette spørgsmål, tror du så at du kan implementere din ide i denne? Jeg er ikke i stand til at ændre på selve \"grundkoden\", men kunne forestille mig, at din nomoresubmit idé skulle indsættes i head-sektionen på min side - helt som du viser det. Og i body skal så indsættes nedenstående \"knap-kode\" i rigtig syntaks.
Jo man kan godt gøre musemarkøren usynlig, men der er der desværre stadig, og så har jo hverken vi eller brugeren nogen anelse om hvad der tilfældigvis bliver klikket på.
Disable [enter]. Ja det kan vi, men vi skal stadig have det andet til ældre browsere. \'disable\' atributten er vist fra HTML4.0 så IE4 og NS4 vil ignorere den. Det er så også fejlen med javascriptet. der findes browsere der ikke fatter det. (men vi skal lidt længere tilbage). Og der er brugere der har disablet javascript (ca 1% af de mest frygtsomme).
Noget helt andet vil jeg tro. Det er jo ligesom det samme problem du har haft hele tiden med alle de andre løsninger også. Kunne det være der ligger en anden <form kommando tidligere i filen, og ikke blev afsluttet med </form> før den vi arbejder med?
Den eneste (meget lille) fejl i det du skriver et at du ikke sætter \' eller \" tegn omkring alle strengparametre eg: <input type=\"hidden\" name=\'ArticleId\' value=\"<%=ArticleId%>\">
Kunne det være at din asp-variabel ArticleId indeholder \"-tegn?
jacoba: Det virker!!! Det virker!!! Læs over dine sidste to indslag.
Tak for hjælpen!
Hvis I har lyst, må I gerne se mit projekt. Det er ikke åbnet endnu, men under udvikling.
NB! Husk at oprette kupondata (I menuen) NB! Husk at abonnere på nyhedsbrev (Ellers virker det ikke) Alle slettes fra listen igen inden vi starter - bare rolig :0)
Ja sorry. Når jeg først kommer igang er det svært at stoppe igen :-)) tak for points.
Ups. gå op i vis(wiev) menuen og vælg skrifttyper(fontsize) til større eller største. Sådan ser det ud når man bruger stor skrift på sin skærm. Så hvad med at lave tabellerne som een stor tabel og lade popopwinduet være resizebart.
mvh JakobA
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.