![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 21 Pomógł: 0 Dołączył: 21.02.2010 Ostrzeżenie: (0%) ![]() ![]() |
Witam!
Poniewaz nie znam sie jeszcze zbyt dobrze na jquery a o php nie wiem wlasciwie nic - formularzow kontaktowych do stron szukam w internecie. Dzis wygrzebalem cos dosc ciekawego - idealnie nadajacego sie do projektu nad ktorym akualnie pracuje: Link do oryginalnego tutka Wprowadzilem kilka zmian: 1. Dodalem element textarea - na tresc wiadomosci - oraz kod jquery sprawdzajacy czy jakas wiadomosc zostala w ogole wpisana. 3. Pozmienialem troche w stylach - usunalem pozycjonowanie absolutne, zmienilem polozenie ostrzezenia o bledzie w wypelnieniu formularza. 4. Zmianilem adresy email na ktore maja przychodzic wiadomosci z formularza- zgodnie z instrukcia zawarta w readme.txt (The process.php file in /bin does need adjustment to send an email correctly. At a minimum, you need to change the $to, $email, $fromaddress, and $mail->From to get it to work ) I wszystko by bylo pieknie gdyby to dzialalo:] Wyskakuje blad 405 Method Not Allowed The requested method POST is not allowed for the URL /ajax/index.html. Sprawdzanie formularza dziala poprawnie. Jednak w momencie w ktorym formularz jest komplenty i ma zostac przekazany do scryptu wykonawczego dzieje sie cos dla mnie nie zrozumialego. plik html mozna podejrzec tutaj: Link do strony na serwerze kod JS (JQuery) Kod $(function() { $('.error').hide(); $('input.text-input').css({backgroundColor:"#FFFFFF"}); $('input.text-input').focus(function(){ $(this).css({backgroundColor:"#CCC"}); }); $('input.text-input').blur(function(){ $(this).css({backgroundColor:"#FFFFFF"}); }); $(".button").click(function() { // validate and process form // first hide any error messages $('.error').hide(); var name = $("input#name").val(); if (name == "") { $("label#name_error").show(); $("input#name").focus(); return false; } var email = $("input#email").val(); if (email == "") { $("label#email_error").show(); $("input#email").focus(); return false; } var phone = $("input#phone").val(); if (phone == "") { $("label#phone_error").show(); $("input#phone").focus(); return false; } var mess = $("textarea#mess").val(); if (mess == "") { $("label#mess_error").show(); $("textarea#mess").focus(); return false; } var dataString = 'name='+ name + '&email=' + email + '&phone=' + phone +'&mess=' + mess; //alert (dataString);return false; $.ajax({ type: "POST", url: "process.php", data: dataString, success: function() { $('#contact_form').html("<div id='message'></div>"); $('#message').html("<h2>Contact Form Submitted!</h2>") .append("<p>We will be in touch soon.</p>") .hide() .fadeIn(1500, function() { $('#message').append("<img id='checkmark' src='images/check.png' />"); }); } }); return false; }); }); runOnLoad(function(){ $("input#name").select().focus(); }); PHP
Oprocz tych 3 - formularz posiada phpmailer oraz scrypt runonload.js Probowalem odniesc sie do oryginalu - zmieniajac tylko adres maila w miejscu podanym w instrukcji - co prawda blad nie wyskakuje - pokazuje sie informacja o wyslalej wiadomosci -ale sam mail nigdy nie dociera. W momencie kiedy zmieniam wartosc ktorej nie powinienem (zgodnie z instrukcja podana przez autora) mail dociera ale w postaci kolorowej ramki ktora tworzy plik wykonawczy php. Link do funkcjonalnego oryginalu - ale bez pola textarea Przesiedzialem juz nad tym dzis kilka godzin i najwyrazniej niz z mojej wiedzy juz nie wydoje:] Jezeli macie chwilke bylbym ogromnie wdzieczny za jakies sugestie. pozdrawiam, Piotrek Ten post edytował thek 31.03.2010, 22:19:16 |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 428 Pomógł: 128 Dołączył: 17.06.2007 Ostrzeżenie: (0%) ![]() ![]() |
Wywala ci skrypt js, jest tam conajmniej jeden błąd:
Kod file: tutorial.js error: phone is not defined line 36: var dataString = 'name='+ name + '&e...'&phone=' + phone +'&mess=' + mess; Przeczytaj treść błędu, wyciągnij wnioski, popraw. Polecam wpisać w google "firefox firebug" i zainteresować się tym dodatkiem jeśli bawisz się javascriptem. Ułatwi ci to debugowanie skryptów. Pozdr. |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 21 Pomógł: 0 Dołączył: 21.02.2010 Ostrzeżenie: (0%) ![]() ![]() |
Rzeczywiscie. Przeoczenie. Poprawilem blad w kodzie js. Co prawda teraz juz nie wyskakuje blad - ale po nacisnieciu submit nie dzieje sie nic:]
Sprawdzalem sciezki pliku php - wydaje sie w porzadku. Korzystam z firebuga - ale nie wiem dokladnie jak sprawdzac bledy w js. Po Googluje na ten temat - ale wydaje mi sie ze blad jest gdzies w pliku php. Dzieki za uwage! |
|
|
![]()
Post
#4
|
|
![]() Newsman Grupa: Moderatorzy Postów: 4 005 Pomógł: 548 Dołączył: 7.04.2008 Skąd: Trzebinia/Kraków ![]() |
właśnie zdebuggowałem Twój formularz i nie masz process.php.
-------------------- |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 21 Pomógł: 0 Dołączył: 21.02.2010 Ostrzeżenie: (0%) ![]() ![]() |
Pokazywalo blad sciezki. Poprawilem. Niestety dalej brak reakcji po submit.
|
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 428 Pomógł: 128 Dołączył: 17.06.2007 Ostrzeżenie: (0%) ![]() ![]() |
Ehhh...
Zobacz sobie czy istnieje na twojej stronie id o nazwie "contact_form". Dlaczego? Bo się próbujesz do niego odwoływać tu:
Dodatkowo radzę ci odrazu żebyś nie testował tego na białym tle strony bo tekst który się pojawia po wysłaniu jest koloru - tak, tak - białego. ![]() Ogólnie skrypt się wykonuje (request do pliku process.php jest ok). |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 21 Pomógł: 0 Dołączył: 21.02.2010 Ostrzeżenie: (0%) ![]() ![]() |
Poprawilem te kolory - poprawilem zle ID..i formularz dziala - no przynajmniej w czesci.
Tak jak wspominalem wczesniej do formularza dodalem textarea - po zdebugowaniu jquery textarea jest jako undefined - i tak samo przychodzi w emailu. ![]() Jak juz rowniez wspominalem po zmianach w pliku process.php mail nie dochodzil wiec powpisywalem w kilku innych miejscach adres maila - po zmianie tych dwoch parametrow :
Email dochodzi ale w formie tabelki (zdjecie ponizej) ![]() Metoda prob i bledow nie uzyskalem zadnych wnioskow wiec moze kod cos pomorze:
Dzieki za uwage! |
|
|
![]()
Post
#8
|
|
![]() Grupa: Zarejestrowani Postów: 428 Pomógł: 128 Dołączył: 17.06.2007 Ostrzeżenie: (0%) ![]() ![]() |
Dublujesz id "mess" w formularzu. ID w dokumencie HTML ma być unikalne.
|
|
|
![]()
Post
#9
|
|
![]() Newsman Grupa: Moderatorzy Postów: 4 005 Pomógł: 548 Dołączył: 7.04.2008 Skąd: Trzebinia/Kraków ![]() |
no ale jaki problem, że masz undefined mess? u mnie wszytko jest OK wysyłane.
-------------------- |
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 21 Pomógł: 0 Dołączył: 21.02.2010 Ostrzeżenie: (0%) ![]() ![]() |
Witam!
Poprawilem wszystkie kwestie na ktore zwrociliscie uwage i wyglada to teraz nastepujaco: Formularz kontaktowy jQuery/Ajax/PHP Poprawilem style wyrowniania itp. Zauwazylem nastepujacy problem: w momencie kiedy wypelnisz caly formularz i klikniej DWA razy na submit pokazuje sie dwa razy obraz potwierdzajacy. ![]() I mail dochodzi na poczte 2 razy. Znacie jakis sposob aby jQuery wykonywalo polecenie submit tylko raz? Pozatym meczy mnie caly czas ten kod PHP - zmodyfikowany przeze mnie doslownie na macu -pacu. Po pierwsze zmodyfikowalem go tam gdzie nie powinienem: ( wedlug autora do zmiany sa: $to, $email, $fromaddress, i $mail->From ) Lecz dopiero po zmiane:
wiadomosci zaczely docierac na poczte. Po drugie. Jak juz dotrze ten email to w oknie "od" jest podany email ktory ja wpisalem w kodzie php(wedlug zalecen autora) a nie email ktory jest wpisywany w formularzu. Kod PHP chodz bardzo przejrzysty nic mi nie mowi- za wysoka szkola jazdy jak dla mnie narazie. Jezeli ktos ma ochote to caly formularz razem z plikami php oraz scryptami do pobrania tutaj: Formularz kontaktowy - bledy w php Dzieki za uwage! Jestescie bardzo pomocni! Ten post edytował MrSeefeld 22.02.2010, 23:59:11 |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 24.07.2025 - 16:46 |