Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [AJAX][PHP] Pobieranie i wysyłanie emaila
pawel06281990
post 30.12.2023, 13:42:52
Post #1





Grupa: Zarejestrowani
Postów: 281
Pomógł: 0
Dołączył: 10.01.2014

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


Witam,

Tworze formularz email, który ma wysyłać też załączniki a tak wyglada mój skrypt ajax

[JAVASCRIPT] pobierz, plaintext
  1. function frm_submit_messenges_proboszcz(){
  2. $ = jQuery;
  3. $("#img_proboszcz").html('<img src="../wp-content/themes/szablonbialoczerwony/assets/images/loading.gif" />');
  4. var formData = new FormData($('#form_proboszcz')[0]);
  5.  
  6. $.ajax({
  7. type:'POST',
  8. method:"POST",
  9. url: ajax_options.ajax_url,
  10. data: formData+'&action=email_send_proboszcz',
  11. enctype: 'multipart/form-data',
  12. success: function(response) {
  13. console.log(formData);
  14. //console.log(ajax_options.ajax_url);
  15. if(response == 'Wiadomość została wysłana'){
  16. $(".form-msgs p").html(response);
  17. $(".form-msgs").show("");
  18. //$('#frm_slide').get(0).reset();
  19.  
  20. $("#img_proboszcz").show();
  21. $("#img_proboszcz").html('');
  22. slideout();
  23. //console.log(response);
  24. //$('#frm_slide').find('.form_result').html(response);
  25. }else{
  26. $(".form-msgs_error p").html(response);
  27. $(".form-msgs_error").show("");
  28. $("#img_proboszcz").show();
  29. $("#img_proboszcz").html('');
  30. slideout_error();
  31. }
  32. }
  33.  
  34. });
  35. }
[JAVASCRIPT] pobierz, plaintext


A tak wygląda skrypt który mam przyjmować to wszystko

  1. if (!empty($_FILES['file']['name']) && is_uploaded_file($_FILES['file']['tmp_name'])){
  2. $upload_maxsize = 15200000;
  3. $upload_extensions = array(
  4. ".pdf",
  5. ".zip",
  6. ".rar",
  7. ".7zip"
  8. );
  9. $upload_folder = WP_CONTENT_DIR.'/uploads/'.date('Y').'/'.date('m').'/';
  10. $upload = $_FILES['file'];
  11. if ($upload['name'] != "" && !empty($upload['name']) && is_uploaded_file($upload['tmp_name']) && $upload['size'] <= $upload_maxsize) {
  12. $upload_ext = strrchr($upload['name'] ,".");
  13. if (in_array($upload_ext, $upload_extensions)) {
  14. $upload_name = $upload['name'];
  15. //var_dump($upload_name1,$upload_name2,$upload_name3);
  16. move_uploaded_file($upload['tmp_name'], $upload_folder.$upload_name);
  17. chmod($upload_folder.$upload_name,0644);
  18. $attachments = array(get_option('home').'/wp-content/uploads/'.date('Y').'/'.date('m').'/'.$upload_name);
  19.  
  20. } else {
  21. __('Takie rozszeżenie pliku nie jest możliwe. dozwolone rozszeżenia to .zip,.rar lub .7zip ','szablon_parafia');
  22. wp_die();
  23. }
  24. } else {
  25. __('Ten plik nie może zostać zapisany.','szablon_parafia');
  26. wp_die();
  27. }
  28.  
  29. }
  30.  
  31.  
  32.  
  33. $headers = array('Content-Type: text/html; charset=UTF-8',
  34. 'From:'.esc_sql($_POST['imie']).' <'.esc_sql($_POST['email']).'>');
  35.  
  36. if(!wp_mail(get_option('admin_email'), esc_sql($_POST['temat']), esc_sql($_POST['wiadomosc']), $headers, $attachments)){
  37. __('Nie możemy wysłać emaila wewnętrzy błąd serwera.','szablon_parafia');
  38. wp_die();
  39. }else{
  40. _e('Wiadomość została wysłana','szablon_parafia');
  41. wp_die();
  42. }


W czym jest błąd ze mi nie pobiera zawartości z formularza tak podaje mi konsola

FormData(5) { imie → "Test", email → "Test@ok.pl", temat → "Test", wiadomosc → "Test", file → {} }
a po rozwinięciu tego mam coś takiego
<entries>
​​
0: imie → "Test"
​​
1: email → "Test@ok.pl"
​​
2: temat → "Test"
​​
3: wiadomość → "Test"
​​
4: file → File { name: "test_zip.zip", lastModified: 1703881088814, size: 127156, … }


Proszę pomórzcie mi pliss

Ten post edytował pawel06281990 30.12.2023, 13:44:00
Go to the top of the page
+Quote Post
Salvation
post 30.12.2023, 15:45:44
Post #2





Grupa: Zarejestrowani
Postów: 344
Pomógł: 70
Dołączył: 15.07.2014

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


Ogólnie, to forma powinieneś wysłać dopiero na event'cie "submit". Nie rozumiem po co robisz funkcję globalną, skoro i tak dotyczy ona tylko tego wybranego formularza.
Tutaj masz rozwiązanie: https://stackoverflow.com/a/10899796 dostosuj je sobie tylko pod WP.

I błagam, używaj angielskich nazw dla funkcji, bo propagujesz gówno-kod...

Ten post edytował Salvation 30.12.2023, 15:47:56
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: 28.04.2024 - 11:25