Hej.
Jag igen, vet..men jag vill veta detta i alla fall. Nu är det så att man fyller i textrutor och själva inskrivningen till databasen sker på exakt samma sida. Jag vill istället att när man fyllt i alla rutor och tryckt på OK-knappen så skickas man till en annan sida som skriver in informationen. Hur gör man detta?? Tack på förhand..
Som i gammla vanliga ASP, använd en form som inte är server kontrollerad och sedan sett action="" till den url som tar hand om postningen. Sedan hämtar du bara värderna från föregående sida med Request.Form["namn"].
Men personligen tycker jag det är smidigare att ha det på samma sida.
Men grejen är att när du postat så står all text kvar i textrutorna, så man kan hur enkelt som helst spamma sönder databasen genom att trycka på posta-knappen flera gånger. Hur kan jag fixa detta då? Så att "OK"-knappen kanske spärras efter att man tryckt på den en gång på sidan, går det?
Hmm, fan det låter svårt :)
Det där med cookie låter iofs lite enklare.. Men finns det någon kodsnutt för detta? Alltså jag sitter med en jäkla bok och lär mig så jag kan inte allt ännu :)
renholm: Nä, bara få bort formuläret direkt när man klockat på OK. Sen om man skulle klicka på länken till anmälan igen så finns formuläret där igen. Så vill jag ha det.
Pace: Men exakt vad i koden indikerar på om man skrivit in eller inte? Om man skriver som du visat nu kommer väl formuläret aldrig visas, eller?
Vill du hindra användaren från att aldrig mer kunna skriva och skicka formuläret under aktuell session/tidsperiod kan du använda dig av cookies. När texten postats sätts cookien till "blaha". När användaren ska försöka posta igen så kollar man helt enkelt om "blaha" finns. Om så är fallet kan man inte posta.
Alternativt om du vill att användaren inte ska kunna få fram formuläret efter postning så kollar du om sidan postats (IsPostBack) och då tar du bort panelen. Från början ska panelen synas och då får du sätta Visible till True:
Nåt i stil med detta:
If Page.IsPostBack() Then
panelform.Visible = False
PostForm()
Else
panelform.Visible = True
ShowForm()
End If
Pace: Samma fel. "Name 'panelform' is not declared" står det i felmeddelandet. Är det för att panelform.visible-koden är före själva panel-taggen? Det går ju inte på annat sätt? Kolla koden två snäpp ovan :(