Camping_RIDER: Newsletter in Webseite einbinden

Beitrag lesen

Aloha ;)

Hat jemand eine Idee wie ich meine Sache verwirklichen kann?

Ja - mit JavaScript/AJAX. Dabei wird das Formular bei Klick auf den Absende-Button (der dann nur noch button/button und nicht button/submit sein sollte) per JavaScript ausgelesen und z.B. mittels eines XMLHttpRequest versandt.

Da im Wiki-Artikel nicht so recht erläutert wird, wie man konkret Daten versenden kann: Die Daten werden der send-Funktion als String übergeben, der String muss natürlich einem bestimmten Format folgen. Eine einfache Möglichkeit wäre beispielsweise die Wahl von

ajax.setRequestHeader("Content-Type","application/x-www-form-urlencoded");

Mit diesem content-type kannst du Variablen und Wert mittels = verknüpfen und weitere Variablen mit & anhängen, wie man das aus dem Query-String in der URL kennt, also dann etwa so:

ajax.send("name=Mein%20Name&mail=Meine%20E-Mail");

wobei du darauf achten solltest, dass sowohl Variablenbezeichner als auch Werte beim Zusammensetzen zu einem String zunächst durch encodeURIComponent() wandern sollten/müssen.

Gesendet wird das dann ein Dokument ganz analog (oder sogar identisch) zum erwähnten danke.php; mittels onreadystatechange kannst du dann auch deine Danke-Botschaft (oder ggf. eine Fehlermeldung) einblenden.

Bei Fragen (natürlich zunächst die verlinkten Artikel lesen und dann) einfach nachfragen, ich kenne deinen Kenntnisstand nicht. JavaScript solltest du aber wenigstens einigermaßen können (d.h. ungefähr wissen, was man da wie damit tut), ansonsten empfehle ich dir die entsprechende Sektion des hiesigen Wiki zur Grundlagenlektüre; ohne JavaScript steht dir afaik kein Weg offen, ein Formular im Hintergrund zu versenden.

Grüße,

RIDER

--
Camping_RIDER a.k.a. Riders Flame a.k.a. Janosch Zoller Erreichbar manchmal im Self-TS (ts.selfhtml.org) oder sonst - wenn online - auf dem eigenen TeamSpeak-Server (fritz.campingrider.de) oder unter: # Facebook # Twitter # Steam # YouTube # Self-Wiki # ch:? rl:| br:> n4:? ie:% mo:| va:) js:) de:> zu:) fl:( ss:| ls:[