2013-12-19, 12:01
  #1
Medlem
Hej är väldigt basic på html och har en kod till skicka formulär


<form id="form" name="form" method="post" action="mailto:adress@adress.se">

Namn:<br />
<input type="text" name="fnamn" id="fnamn" /> <br />

E-postadress:<br />
<input type="text" name="epost" id="epost" /> <br />

Meddelande:<br />
<textarea name="meddelande" id="meddelande" cols="45" rows="5"></textarea> <br />

<input type="submit" name="skicka" id="skicka" value="Skicka meddelandet" />
<INPUT TYPE=RESET VALUE="Rensa">
</form>


Problemet är att i action så när man skickar formuläret så kommer upp ett mail program som skickar och det är för att jag använder mailto. Finns det något sätt som gör att den skickar direkt från formuläret? Och gärna med en liten återkopplingsknapp som "Din fråga är skickad" under aciton?
Citera
2013-12-19, 12:47
  #2
Medlem
FarbrorKruts avatar
Nja, om du vill skicka direkt från formuläret så får du nog använda PHP. Vad jag vet så är den metod du använder den ända som är i ren HTML.
Citera
2013-12-19, 15:52
  #3
Medlem
ja du måste ha en egen server eller använda en cloud server för detta

http://www.wufoo.com/
Citera
2013-12-19, 16:24
  #4
Medlem
TexasSwedes avatar
Citat:
Ursprungligen postat av Nina112
Hej är väldigt basic på html och har en kod till skicka formulär

<form id="form" name="form" method="post" action="mailto:adress@adress.se">

Problemet är att i action så när man skickar formuläret så kommer upp ett mail program som skickar och det är för att jag använder mailto. Finns det något sätt som gör att den skickar direkt från formuläret? Och gärna med en liten återkopplingsknapp som "Din fråga är skickad" under aciton?

Istället för att använda mailto så anropar du ett program på en server. Detta program kan vara skrivet i PHP, eller något annat språk, det är av mindre betydelse vilket. Du väljer programeringsspråk baserat på dina kunskaper, vad som finns installerat på server, etc.

Detta program läser de värden som skickas över via HTTP från ditt formulär, behandlar dem på lämpligt sätt och returnerar ett resultat. I det här fallet skulle jag använda GET istället för POST, och returnera en tack-sida (om allt går bra).

Men vad jag skulle rekommendera, om du vill att det ska bli lite mer "modernt", är att du använder Javascript för att skicka dina värden till servern via ett Ajax-anrop. Programmet på servern returnerar sedan ett svar (i JSON-format) som din kod på webbsidan kan läsa. Beroende på vad som kommer tillbaka kan du göra olika saker, till exempel visa en tack-ruta utan att hela sidan behöver laddas om.
För att göra det enklare att skriva koden ovan kan du använda ett funktionsbibliotek som jQuery, men du ska ändå först lära dig åtminstone grunderna i Javascript innan du börjar med jQuery.

Här är en kodsnutt i jQuery från ett program jag jobbar med, det gör just vad jag beskriver ovan. I det här fallet anropar jag ett program ("agent") skrivet i Lotusscript som ligger på en IBM Domino-server. Jag har modifierat koden lite och lagt in några rader som är relevant i ditt exempel. Kan säkert vara något slarvfel i koden, har inte testkört den...

Kod:
// Skapa JSON-objekt som innehåller värden från fälten
var json = new Object;
json["Firstname"]=$("#fnamn").val();
json["Email"]=$("#epost").val();
json["Message"]=$("#meddelande").val();

// Anropa kod på servern som uppdaterar databas-records med värdena
$.ajax({
 url: "http://www.example.com/database.nsf/ajax_UpdateClient?OpenAgent", 
 data: json,
 cache: false
 }).done(function(data) {
 // Lägg in kod här för att läsa returnerad data
 });
Citera
2013-12-19, 16:39
  #5
Medlem
Citat:
Ursprungligen postat av TexasSwede
Detta program läser de värden som skickas över via HTTP från ditt formulär, behandlar dem på lämpligt sätt och returnerar ett resultat. I det här fallet skulle jag använda GET istället för POST, och returnera en tack-sida (om allt går bra).

Jag skulle använda POST för detta, varför GET ? I övrigt så tycker jag TS definitivt ska använda en cloud tjänst om det inte är mer en ett kontakt formulär han behöver. Undantaget är om han vill försvåra för NSA att sparar all information (fast de får nog tag på den även om han har en server i sverige)
Citera
2013-12-19, 18:15
  #6
Medlem
FarbrorKruts avatar
Citat:
Ursprungligen postat av GastenGusten
Jag skulle använda POST för detta, varför GET ? I övrigt så tycker jag TS definitivt ska använda en cloud tjänst om det inte är mer en ett kontakt formulär han behöver. Undantaget är om han vill försvåra för NSA att sparar all information (fast de får nog tag på den även om han har en server i sverige)
Vad för host som används spelar ju ingen roll. Spara filerna på samma plats och referera korrekt så är alla problem lösta, enkelt och smidigt.
Citera
2013-12-19, 18:55
  #7
Medlem
Povels avatar
Citat:
Ursprungligen postat av FarbrorKrut
Vad för host som används spelar ju ingen roll. Spara filerna på samma plats och referera korrekt så är alla problem lösta, enkelt och smidigt.
Vad menades med detta? :/ Vilka filer avses?

/p
Citera
2013-12-19, 21:22
  #8
Medlem
FarbrorKruts avatar
Citat:
Ursprungligen postat av Povel
Vad menades med detta? :/ Vilka filer avses?

/p
Syftar på de dokument som används för sidan. Dvs. filer för HTML, PHP, osv ... GastenGusten påpekar att en cloud server måste användas för att lösa TS problem. Vad jag menar är att host inte spelar någon roll då du kan få samma resultat lokalt som på vilken server som helst.
Citera
2013-12-20, 09:56
  #9
Medlem
Citat:
Ursprungligen postat av TexasSwede
I det här fallet skulle jag använda GET istället för POST, och returnera en tack-sida (om allt går bra).

Jag har hört att man bara använder GET för att hämta information? Att GET-förfrågningar kan cache:as, så de lämpar sig inte för att skicka information. Det är t.ex. inte säkert att förfrågningar på server.se/send.php?msg=hej kör scriptet varje gång. För det behövs POST.
Citera
2013-12-20, 10:08
  #10
Medlem
FarbrorKruts avatar
Citat:
Ursprungligen postat av alef-noll
Jag har hört att man bara använder GET för att hämta information? Att GET-förfrågningar kan cache:as, så de lämpar sig inte för att skicka information. Det är t.ex. inte säkert att förfrågningar på server.se/send.php?msg=hej kör scriptet varje gång. För det behövs POST.
Delvis rätt! Enkelt förklarat så söker du information i URL:en, som i ditt exempel: server.se/send.php?msg=hej så returneras hej om du söker efter msg. Om du kodar rätt så kommer detta trigga scriptet varje gång och lämpar sig för information som t.ex. vilken sida du är på i ett forum, som bla. Flashback gör. Håller med om att POST lämpar sig bättre i TS område, tänk dig bara att skicka ett långt meddelande via GET; det går ... Men URL:en blir enorm.
Citera
2013-12-20, 10:20
  #11
Moderator
vhes avatar
Citat:
Ursprungligen postat av FarbrorKrut
Håller med om att POST lämpar sig bättre i TS område, tänk dig bara att skicka ett långt meddelande via GET; det går ... Men URL:en blir enorm.

Det är inte bara olämpligt, det är direkt standardvidrigt.
Citat:
Ursprungligen postat av http://tools.ietf.org/html/rfc2616#section-9.1.1
Kod:
In particular, the convention has been established that the GET and
   HEAD methods SHOULD NOT have the significance of taking an action
   other than retrieval.
Citera
2013-12-20, 15:40
  #12
Medlem
TexasSwede skrev:
Citat:
Ursprungligen postat av TexasSwede
Detta program läser de värden som skickas över via HTTP från ditt formulär, behandlar dem på lämpligt sätt och returnerar ett resultat. I det här fallet skulle jag använda GET istället för POST, och returnera en tack-sida (om allt går bra).
och jag svarade med:
Citat:
Ursprungligen postat av GastenGusten
Jag skulle använda POST för detta, varför GET ?

Kanske missupfattade jag TexasSwede här? Kanske menar han att formuläret ska skickas som "POST" och sedan returnera en tack-sida med "GET" ? Det kanske är bäst om TexasSwede förtydligar vad han menade. Jag ber om ursäkt om jag drog en förhastad slutsats och vilselett andra i den här tråden.

Citat:
Ursprungligen postat av FarbrorKrut
Syftar på de dokument som används för sidan. Dvs. filer för HTML, PHP, osv ... GastenGusten påpekar att en cloud server måste användas för att lösa TS problem. Vad jag menar är att host inte spelar någon roll då du kan få samma resultat lokalt som på vilken server som helst.

jag förstår inte heller vad du menar, php kan du bara använda på server sidan.
__________________
Senast redigerad av GastenGusten 2013-12-20 kl. 15:53.
Citera
  • 1
  • 2

Skapa ett konto eller logga in för att kommentera

Du måste vara medlem för att kunna kommentera

Skapa ett konto

Det är enkelt att registrera ett nytt konto

Bli medlem

Logga in

Har du redan ett konto? Logga in här

Logga in