Форум программистов, компьютерный форум, киберфорум
Наши страницы
JavaScript
Войти
Регистрация
Восстановить пароль
 
dolte
Человек
324 / 198 / 63
Регистрация: 04.02.2013
Сообщений: 1,195
1

ajax обработка формы

21.02.2014, 13:34. Просмотров 663. Ответов 0
Метки нет (Все метки)

Есть форма обратной связи с вложением.

Без аякса вложение на почту приодит.

с аяксом нет

Вот код:
Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
function send_analiz() { //Ajax отправка формы
    var msg = $("#analysiss").serialize();
    $.ajax({
        type: "POST",
        url: "/send_analiz.php",
        data: msg,
        success: function(data) {
            $(".fancybox-close").click();
            $(".results_main_bg").fadeIn();
            $("#results").html(data);
            $(".results_main_bg").delay(2000).fadeOut("slow");
        },
        error:  function(xhr, str){
            alert("Возникла ошибка!");
        }
    });
}
вот код формы:

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
<?php 
 
  $picture = ""; 
  // Если поле выбора вложения не пустое - закачиваем его на сервер 
  if (!empty($_FILES['mail_file']['tmp_name'])) 
  { 
    // Закачиваем файл 
    $path = $_FILES['mail_file']['name']; 
    if (copy($_FILES['mail_file']['tmp_name'], $path)) $picture = $path; 
  } 
  $contlic = $_POST['contactname'];
  $company = $_POST['company'];
  $sitelink = $_POST['address'];
  $telephone = $_POST['telephone'];
  $email = $_POST['email'];
  $dopinfo = $_POST['information'];
  $thm = "IMOS: Заявка на анализ";
  $msg = "Контактное лицо: $contlic \n\nКомпания: $company \n\nАдрес сайта: $sitelink \n\nТелефон: $telephone \n\nE-mail: $email \n\nДоп.инфо: $dopinfo";
  $mail_to = " "; //Сюда адрес почты
  // Отправляем почтовое сообщение 
  if(empty($picture)) 
  mail($mail_to, $thm, $msg,"From:IMOS: Заявка на анализ\nContent-type: text/plain; charset=utf-8\n"); 
  else send_mail($mail_to, $thm, $msg, $picture); 
  // Вспомогательная функция для отправки почтового сообщения с вложением 
  function send_mail($to, $thm, $html, $path) 
  { 
    $fp = fopen($path,"r"); 
    if (!$fp) 
    { 
      print "Файл $path не может быть прочитан"; 
      exit(); 
    } 
    $file = fread($fp, filesize($path)); 
    fclose($fp); 
 
    $boundary = "--".md5(uniqid(time())); // генерируем разделитель 
    $headers .= "MIME-Version: 1.0\n"; 
    $headers .="Content-Type: multipart/mixed; boundary=\"$boundary\"\n"; 
    $multipart .= "--$boundary\n"; 
    $multipart .= "Content-Type: text/plain; charset=utf-8\n"; 
    $multipart .= "Content-Transfer-Encoding: Quot-Printed\n\n"; 
    $multipart .= "$html\n\n"; 
 
    $message_part = "--$boundary\n"; 
    $message_part .= "Content-Type: application/octet-stream\n"; 
    $message_part .= "Content-Transfer-Encoding: base64\n"; 
    $message_part .= "Content-Disposition: attachment; filename = \"".$path."\"\n\n"; 
    $message_part .= chunk_split(base64_encode($file))."\n"; 
    $multipart .= $message_part."--$boundary--\n"; 
 
    if(!mail($to, $thm, $multipart, $headers)) 
    { 
      echo "К сожалению, письмо не отправлено"; 
      exit(); 
    } 
  } 
?>
и сама форма

HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
<form id="analysiss" method="post"  action="javascript:void(0);" onsubmit="send_analiz()">
    <div class="fieldContainer"> 
      <div class="formRow"> 
        <div class="field"> <input type="text" placeholder="Контактное лицо" id="contactname" name="contactname" required="" /> </div>
       </div>
     
      <div class="formRow"> 
        <div class="field"> <input type="text" placeholder="Компания" id="company" name="company" /> </div>
       </div>
     
      <div class="formRow"> 
        <div class="field"> <input type="text" placeholder="Адрес сайта" id="address" name="address" required="" /> </div>
       </div>
     
      <div class="formRow"> 
        <div class="field"> <input type="text" placeholder="Номер телефона" id="telephone" name="telephone" required="" /> </div>
       </div>
     
      <div class="formRow"> 
        <div class="field"> <input type="text" placeholder="E-mail" id="email" name="email" required="" /> </div>
       </div>
     
      <div class="formRow"> 
        <div class="field"> <textarea placeholder="Дополнительная информация" id="information" name="information"></textarea></div>
       </div>
     </div>
   
    <div class="signupButton">    
      <div id="addfile"> 
        <div class="addfile-title">Прикрепить файл</div> 
       <input type="file" name="mail_file" maxlength="64">
        <div class="file-name">Файл не выбран</div>
       <a onclick="ClearFile('analysiss'); return false;" href="#" class="kick-file" >X</a> </div>
     <input type="submit" id="sendbut" name="submit2" value="Отправить" /> </div>
   </form>
Добавлено через 2 часа 42 минуты
Вопрос решил так:
{ссылка удалена}
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.02.2014, 13:34
Ответы с готовыми решениями:

Множественая обработка формы Ajax по кнопке submit
Имеется админ панель в которой выводится из бд товары. Каждый товар можно...

Ajax, отправка формы и выполнение JS
Добрый день. Народ, подскажите, как можно, при нажатии на ссылку, выполнить...

Отправка формы на почту с JavaScript и AJAX
Уважаемые форумчане, подскажите, как отправить данные формы на почту с...

Плагин для валидации формы ajax
Всем привет! Хотелось бы сменить самописный функционал на плагин: Нужна...

Передача данных с формы в AJAX запрос
как передать в AJAX запрос значение переменных из формы сюда data:...

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.02.2014, 13:34

Корректность работы формы обратной связи ajax
Вразумите, можно ли считать корректной работу формы обратной связи ajax, если...

Отправка формы html с помощью ajax в реальном времени
Очень нужна помощь, вопрос внизу Все в файле form.php. Осуществляется...

Передача данных формы скрипту php посредством js (ajax)
Вопрос по ajax. &lt;?php header('Content-type: text/html; charset=UTF-8'); ?&gt;...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru