Formularz w JavaScript - zapis do TXT!


(TheMegaCherry) #1

Witam,

Chciałbym się spytać jak i poprosić o pomoc w pewnej sprawie...

...czy jest możliwość stworzenia w samym JavaSripcie, HTMLu i w CSSie formularza (imię, nazwisko, e-mail itp) na stronę, który po wciśnięciu przycisku np.: "WYŚLIJ" wyśle dane z formularza na dany e-mail? Albo chociaż zapisze te dane do pliku txt?

Wiem, ze można to zrobic po przez PHP funkcją mail, ale muszę obejść się bez PHp.

Pomożecie?


(KamilDz) #2

http://www.techrepublic.com/article/set-up-an-html-mailto-form-without-a-back-end-script/

Ale trzeba mieć skonfigurowanego klienta poczty, mało kto to ma w dzisiejszych czasach.


(Kamatori) #3

Obecnie w produkcji: 

 

http://www.emailjs.com/#features

 

Albo użyjesz mandrilla (bądź Mailguna) + jQuery i AJAX: 

 

https://medium.com/@mariusc23/send-an-email-using-only-javascript-b53319616782


(TheMegaCherry) #4

A nie ma innej możliwości? Bo chciałbym właśnie ominąć wysyłanie po przez klienta poczty… Chciałbym żeby wszystko odbywało sie po stronie serwera strony www.

Mógł byś bardziej przybliżyć? Jak to wykonać?


(Drobok) #5

Co do drugiego linka jest tam wszystko opisane. Jednak korzystasz z php czy co tam jest po stronie serwera pośredniczącego. No i magiczna linijka na samym dole:

 

 

Po stronie klienta nie da rady nic wysyłać. Łatwo takie coś przerobić na spamera z twojej skrzynki :wink:


(TheMegaCherry) #6

A znacie może gotowe serwisy, które oferują stworzenie formularzy na własną stronę i wszystko odbywa się po przez serwer tego serwisu?

Oczywiście musi to być bez żadnych reklam i żebym mógł dostosować wygląd formularza.


(Drobok) #7

Jeśli chodzi ci o email kontaktowy możesz użyć pierwszego lepszego linka z google, np http://www.foxyform.com/

PS zawsze możesz wrzucić skrypt na darmowy hosting i to z niego (przez iframe) się odwoływać do formularza


(TheMegaCherry) #8

 

Tylko, że niestety nie mogę stworzyć własnych pól formularza…

PS: A polecisz jakiś dobry darmowy serwer właśnie pod skrypt mailowy?

 

Pomoże ktoś w tym? Wytłumaczy jak to zrobić krok po kroku, bo jestem trochę laikiem jeżeli chodzi o JavaScript :frowning:


(Jusko) #9

Szybciej chyba będzie, jeśli skorzystasz z jakiegoś gotowego szablonu mailowego. Wstawiasz pliki na stronę, jak trzeba zmieniasz frazy na polskie i wsio.

 

Przykładowe formularze, z których miałem okazję korzystać to:

 

 

 

 

Jeśli nie orientujesz się w “zabawach” z kodem, to bez gotowców będzie ciężko.


#10

Aby zrobić prosty formularz nie potrzeba nic poza kilokam liniami w php, html i css.

 

przykład:

 

kod ze strony kontakt.html

<div class="contactBox">
<h2>Formularz kontaktowy</h2>
<form action="mail.php" method="post" id="formularz">
<input type="text" class="contactForm" id="name" name="name" placeholder="Imię i Nazwisko">
<input type="text" class="contactForm" id="email" name="email" placeholder="Adres e-mail">
<input type="text" class="contactForm" id="subject" name="subject" placeholder="Temat wiadomości"> 
<textarea id="message" name="message" placeholder="Tekst wiadomości"></textarea>
<button type="submit" id="submit" name="submit">Wyślij</button>
</form>
</div>

Za wysłanie danych z formularza odpowiada wpis w pliku mail.php o takiej zawartości:

<?PHP
$to = '<mail na jaki ma być wysłana wiadomość';
$subject = $_POST['subject'];
$message = $_POST['message'];
$headers = 'From: ' . $_POST['name'] . ' <'. $_POST['email'].'> ' . "\r\n" . 'Content-type: text/html; charset=utf-8';
	
mail($to, $subject, $message, $headers);

header( 'Location: http://jaks-strona.pl/kontakt-send.htm' ); 
?>

teraz po wypełnieniu formularza wyśle mal z odpowiednimi nagłówkami. 

Opcja “header” to wskazanie co ma zostać zrobione po poprawnym wysłaniu formularza. Ja mam zrobioną kopię strony kontakt ale z takim komunikatem że “Wiadomość została wysłana”.

 

Jest to prosty i skuteczny formularz.

 

Polecam także dodać w js taki mały walidator formularza.

<script>
$("#formularz").validate({
  rules: {
	name: "required", 
	email: {
	  required: true,
	  email: true
	},
	subject: "required",
	message: "required"
  },
  messages: {
	name: "* Podaj swoje Imię i Nazwisko",
	email: {
	  required: "* Podaj swój adres email",
	  email: "* Wpisz poprawny adres email np. name@domain.com"
	},
	subject: "* Podaj temat wiadomości",
	message: "* Wpisz tekst wiadomości"
  }
});
</script>

(Drobok) #11

Powinieneś parsować pobierane dane, niepotrzebnie mieszasz z tym jquery pisząc że to js, a funkcja mail to kiepski wybór. Lepszy jest choćby phpmailer :wink:


(TheMegaCherry) #12

JUSKO : W jednym potrzebna jest obsługa PHP (serwer gdzie ma stać formularz nie obsługuje PHP) a w drugim w wersji darmowej obsługuje tylko 100 maili miesięcznie a ja potrzebuje przynajmniej 500.

 

KRISP : Serwer gdzie ma stać formularz nie obsługuje PHP, także język PHP odpada niestety.

 

DROBOK : Tak jak wyżej - bez PHP.

 

Macie jeszcze jakieś pomysły? Bo ja szukam i nie mogę znaleźć…

 

 

Najbardziej mi pasuje ten pomysł, ale nwm jak się za to zabrać :frowning:

 

PS: Wgl to chodzi mi o taki formularz zamówień (imię, nazwisko, ulica itd) a nie formularz kontaktowy…


(Kamatori) #13

@autor podstawowa znajomość JS’a + HTML’a + JQuery. Bez tego nic nie ruszysz. 

 

Generalnie to powinno wyglądać tak: 

 

Masz formularz w htmlu w którym definiujesz sobie pola do wysłania -> user wciska submit -> pobierasz w jquery wartość tych pól za pomocą funkcji .val() albo .text() -> wstawiasz te wartości w skrypt podany w tym poradniku i wsio. 

 

Ale jeśli ma to być formularz ZAMÓWIEŃ a nie kontaktowy to głupotą jest to robić z otwartym kluczem api. Bez pythona / php / rubiego po stronie serwera nie ma co się za to brać.


#14

 

Testowałem swoje rozwiązanie na serwerze kolegi, który ma wykupioną niby wersję bez obsługi php, rozwiązanie zadziałało bez problemu. 


(Drobok) #15

Czy ty w ogóle czytałeś swój temat ? My tutaj mówimy o trzymaniu php na zewnętrznym serwerze. Forma masz u siebie i wysyłasz na tej serwer ten twój form. A moja uwaga była co do skryptu wyżej, który pada pod podstawowym błędem walidacji tylko po stronie klienta.


(mikolaj_s) #16

Jak nie może stać serwer na maszynie z formularzem, to sobie wystaw taką usługę wysyłania poczty na innym zewnętrznym serwerze i się do niej łącz po jakimś API RESTowym.

 

Inny pomysł to użycie NodeJS. Ten działa wszędzie.

 

Jeszcze inny pomysł to przekierowanie użytkownika na stronę webmaila

 

Mógłbyś też sam pogadać z jakimś API mailowym na przykład tym od GMaila: https://developers.google.com/gmail/api/

 

Wprowadzasz trochę zamieszania. Jakiego serwera, skoro pisałeś wcześniej, że nie ma serwera? Przeglądarka to nie serwer.