Czy istnieje sposób na prostą integrację mailchimp (jedno wejście e-mail) z AJAX, tak aby nie było odświeżania strony ani przekierowania do domyślnej strony mailchimp.
To rozwiązanie nie działa jQuery Ajax POST nie działa z MailChimp
Dzięki
javascript
ajax
forms
newsletter
mailchimp
alexndm
źródło
źródło
Odpowiedzi:
Nie potrzebujesz klucza API, wszystko, co musisz zrobić, to umieścić standardowy formularz wygenerowany przez mailchimp w swoim kodzie (dostosuj wygląd do potrzeb) i zmienić atrybut „action” w formularzu
post?u=
na,post-json?u=
a następnie na końcu formularza akcja append,&c=?
aby obejść każdy problem między domenami. Należy również pamiętać, że przesyłając formularz, należy użyć funkcji GET, a nie POST.Twój tag formularza będzie domyślnie wyglądał mniej więcej tak:
zmień to, aby wyglądało mniej więcej tak
Mail Chimp zwróci obiekt json zawierający 2 wartości: „wynik” - to wskaże, czy żądanie się powiodło, czy nie (widziałem tylko 2 wartości, „błąd” i „sukces”) oraz „msg” - wiadomość opisanie wyniku.
Przesyłam swoje formularze za pomocą tego fragmentu jQuery:
źródło
post-json
zgodnie z opisem. Usuń,&c=
jeśli masz to w formularzu action url. UżyjdataType: 'jsonp'
ijsonp: 'c'
dla swojego wywołania jQuery ajax.EMAIL
( wielkie litery). W przeciwnym razie pojawi się błąd z informacją, że adres e-mail jest pusty.Bazując na odpowiedzi gbinflames, zachowałem POST i URL, aby formularz nadal działał dla osób z wyłączonym JS.
Następnie użycie metody .submit () jQuery zmieniło typ i adres URL w celu obsługi odpowiedzi JSON.
źródło
Państwo powinno użyć kodu po stronie serwera, aby zabezpieczyć swoje konto MailChimp.
Poniżej znajduje się zaktualizowana wersja tej odpowiedzi, która używa PHP :
Pliki PHP są „zabezpieczone” na serwerze, na którym użytkownik nigdy ich nie widzi, ale jQuery może nadal uzyskiwać dostęp i używać.
1) Pobierz przykład PHP 5 jQuery tutaj ...
http://apidocs.mailchimp.com/downloads/mcapi-simple-subscribe-jquery.zip
Jeśli masz tylko PHP 4, po prostu pobierz wersję 1.2 MCAPI i zamień odpowiedni
MCAPI.class.php
plik powyżej.http://apidocs.mailchimp.com/downloads/mailchimp-api-class-1-2.zip
2) Postępuj zgodnie ze wskazówkami zawartymi w pliku Readme, dodając klucz API i identyfikator listy do
store-address.php
pliku w odpowiednich lokalizacjach.3) Możesz także chcieć zebrać nazwy użytkowników i / lub inne informacje. Musisz dodać tablicę do
store-address.php
pliku, używając odpowiednich zmiennych scalających.Oto,
store-address.php
jak wygląda mój plik, w którym zbieram również imię, nazwisko i typ adresu e-mail:4) Utwórz formularz HTML / CSS / jQuery. Nie jest wymagane, aby znajdować się na stronie PHP.
Oto coś takiego, jak
index.html
wygląda mój plik:Wymagane elementy ...
index.html skonstruowana jak powyżej lub podobnie. Dzięki jQuery wygląd i opcje są nieograniczone.
store-address.php pobrany jako część przykładów PHP na stronie Mailchimp i zmodyfikowany za pomocą klucza API i identyfikatora LISTY . Musisz dodać inne opcjonalne pola do tablicy.
Plik MCAPI.class.php pobrany ze strony Mailchimp (wersja 1.3 dla PHP 5 lub wersja 1.2 dla PHP 4). Umieść go w tym samym katalogu, co twój store-address.php lub zaktualizuj ścieżkę url w store-address.php, aby mógł go znaleźć.
źródło
Dla każdego, kto szuka rozwiązania na nowoczesny stos:
źródło
Opierając się na odpowiedzi gbinflames, to działa dla mnie:
Wygeneruj prosty formularz rejestracji listy mailchimp, skopiuj adres URL akcji i metodę (post) do formularza niestandardowego. Zmień również nazwy pól formularza na wielkie litery (nazwa = 'EMAIL' jak w oryginalnym kodzie mailchimp, EMAIL, FNAME, LNAME, ...), a następnie użyj tego:
źródło
Jeśli chodzi o tę datę (luty 2017), wydaje się, że mailchimp zintegrował coś podobnego do tego, co sugeruje gbinflames, w swoim własnym formularzu generowanym przez JavaScript.
Nie potrzebujesz teraz żadnej dalszej interwencji, ponieważ mailchimp skonwertuje formularz do formularza AJAX, gdy włączony jest javascript.
Teraz wystarczy wkleić wygenerowany formularz z menu embed na swoją stronę html i NIE modyfikować ani nie dodawać żadnego innego kodu.
To po prostu działa. Dzięki MailChimp!
źródło
Aby to osiągnąć, użyj wtyczki jquery.ajaxchimp . To bardzo łatwe!
JavaScript:
źródło
Z drugiej strony jest kilka pakietów w AngularJS, które są pomocne (w AJAX WEB):
https://github.com/cgarnier/angular-mailchimp-subscribe
źródło