Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP][jQuery] Formularz mail - odswieżanie.
cypeczek
post 10.07.2010, 09:09:23
Post #1





Grupa: Zarejestrowani
Postów: 37
Pomógł: 0
Dołączył: 9.07.2010

Ostrzeżenie: (0%)
-----


Witam mam taki problem. Zrobiłem wysakkujące okienko w jQuery według tego poradnika: http://yensdesign.com/2008/09/how-to-creat...p-using-jquery/ Do okienka wstawilem formularz mail w php. Tak wygląda cały kod, okienko z zawartym formularzem.
  1. <div id="popupContact">
  2. <a id="popupContactClose">x</a>
  3. <h1>Formularz zakupu PoMęsku.</h1>
  4. <p id="contactArea">
  5.  
  6. <!-- PHP -->
  7. if (count($_POST))
  8. {
  9. ////////// USTAWIENIA //////////
  10. $email = 'cbarton@poczta.fm';
  11. $subject = 'Produkt:';
  12. $message = 'Dziekujemy za zakup produktów w naszym sklepie.';
  13. $error = 'Wystąpił błąd podczas zakupów. Skorzystaj ponownie z formularza.';
  14. $charset = 'iso-8859-2';
  15. //////////////////////////////
  16.  
  17. $head =
  18. "MIME-Version: 1.0\r\n" .
  19. "Content-Type: text/plain; charset=$charset\r\n" .
  20. "Content-Transfer-Encoding: 8bit";
  21. $body = '';
  22. foreach ($_POST as $name => $value)
  23. {
  24. if (is_array($value))
  25. {
  26. for ($i = 0; $i < count($value); $i++)
  27. {
  28. $body .= "$name=" . (get_magic_quotes_gpc() ? stripslashes($value[$i]) : $value[$i]) . "\r\n";
  29. }
  30. }
  31. else $body .= "$name=" . (get_magic_quotes_gpc() ? stripslashes($value) : $value) . "\r\n";
  32. }
  33. echo mail($email, "=?$charset?B?" . base64_encode($subject) . "?=", $body, $head) ? $message : $error;
  34. }
  35. else
  36. {
  37. <!-- ENDPHP -->
  38.  
  39. <form action="?" method="post">
  40. <table>
  41. <tr>
  42. <td>Produkt:</td>
  43. <td>
  44. <select name="Produkt:">
  45. <option>Usunięcie ostrzeżenia</option>
  46. </select>
  47. </td>
  48. </tr>
  49. <tr>
  50. <td>Twój email:</td>
  51. <td><input type="text" size="25" name="Email kupującego: " /></td>
  52. </tr>
  53. <tr>
  54. <td>Twój nick:</td>
  55. <td><input type="text" size="25" name="Nick kupującego: " /></td>
  56. </tr>
  57. </table>
  58. </br>
  59. <table>
  60. <tr>
  61. <td>Informacje dodatkowe:</td>
  62. </tr>
  63. <tr>
  64. <td><textarea name="Informacje dodatkowe: " cols="46" rows="6"></textarea></td>
  65. </tr>
  66. </table>
  67. </br></br>
  68. <table align="center">
  69. <tr>
  70. <td><button type="submit">Wyślij</button></td>
  71. </tr>
  72. </table>
  73. </form>
  74.  
  75. <!-- PHP -->
  76. }
  77. <!-- ENDPHP -->
  78.  
  79. </p>
  80. </div>
  81. <div id="backgroundPopup"></div></td>


I mam taki problem, wysyłam formularz i jest ok wszystko wiadomość przychodzi na maila (bez polskich znaków, też proszę bardzo o podpowiedź jak zmienić kodowanie żeby było dobrze, na stronie jest ok, ale w treści maila juz nie). I pojawia się komunikat że wysłano. Super jest ok. Zamykam okienko. Uruchamiam ponownie i wciąż jest komunikat z podziękowaniem a nie formularz do wypełnienia. Trzeba jeszcze raz wejść na tą stroną, żeby był formularz, samo odświerzanie nic nie daje. Jest jakieś rozwiązanie tego problemu?

PS. Kod php mam <!-- PHP --><!-- ENDPHP --> tak ponieważ jest to plik stylu phpBB3 i nie mogę zapisać pliku jako php.

Bardzo proszę o pomoc i z góry dziękuję.

Nie wiem czy można tutaj, ale podbije. Bardzo mi zależy na rozwiązaniu tego problemu.

Ten post edytował cypeczek 9.07.2010, 18:31:59
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 5)
Riggs
post 10.07.2010, 10:29:23
Post #2





Grupa: Zarejestrowani
Postów: 162
Pomógł: 13
Dołączył: 16.06.2007

Ostrzeżenie: (0%)
-----


Na pewno coś jest nie tak z tym count($_POST). Formularze sprawdza się najczęściej za pomocą "submit" a więc przycisk ma jakąś tam nazwę np. "submit" i sprawdzasz isset($_POST['submit']).
Go to the top of the page
+Quote Post
cypeczek
post 11.07.2010, 22:35:25
Post #3





Grupa: Zarejestrowani
Postów: 37
Pomógł: 0
Dołączył: 9.07.2010

Ostrzeżenie: (0%)
-----


Ale formularz działa poprawnie. Tylko jak zrobić żeby po wysłaniu pokazał się komunikat wysłano. A potem po odświeżeniu, albo po zamknięcia okienka formularza był on znowu formularzem, a nie wyświetlał się tekst wysłano.
Go to the top of the page
+Quote Post
cniak
post 12.07.2010, 14:22:09
Post #4





Grupa: Zarejestrowani
Postów: 169
Pomógł: 12
Dołączył: 16.09.2009

Ostrzeżenie: (0%)
-----


przegladarka zapisuje dane do pamieci podrecznej, wiec dopiero po odswiezeniu otwiera na nowo. Daj po wyslaniu formularza header location i chyba bedzie po problemie smile.gif
Go to the top of the page
+Quote Post
Riggs
post 12.07.2010, 14:53:58
Post #5





Grupa: Zarejestrowani
Postów: 162
Pomógł: 13
Dołączył: 16.06.2007

Ostrzeżenie: (0%)
-----


Hmm nie wiem czy Cię dobrze rozumiem. Jeśli chcesz żeby w okienku wywołanym za pomocą jQuery user mógł wysłać maila a później w tym samym okienku pojawiło się info o wysłaniu maila to musisz skorzystać z AJAX. Za pomocą AJAX wyślesz maila, odbierzesz komunikat czy się udało i odpowiednio podmienisz zawartość tegoż okienka.
Go to the top of the page
+Quote Post
Wilu88
post 12.07.2010, 15:18:16
Post #6





Grupa: Zarejestrowani
Postów: 158
Pomógł: 6
Dołączył: 7.03.2010

Ostrzeżenie: (0%)
-----


Hmm, a takie pytanko. Jakbym chciał wywołać tego popupa, ale w czasie wykonywania kodu php? Tzn. chciałbym aby wyświetliło mi tego popup'a gdy logowanie się nie powiedzie. A nie jak w tym przykładzie po kliknięciu na button.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 14.08.2025 - 03:29