@kasper051

Можете помочь в вопросе с ajax формами?

я доделаваю сайт . там на главной странице есть кнопка "оставить заявку" и оттуда письма приходят на почту, но почему то как спам. и за него отвечает ajax форма в post.php теперь мне ее надо переделать под кнопку "заказать" которая находится на странице в товарами . и там нужно не только номер и телефон и другие данные передать. как это можно сделать?

код в post2.php
<?php
if ($_SERVER["REQUEST_METHOD"] == "POST") {
  if (isset($_POST['myform'])) {$name = $_POST['name'];}else{
    echo 'Введите имя';
  }
  if (isset($_POST['phone'])) {$phone = $_POST['phone'];}else{
    echo 'Введите телефон';
  }  
	$to = "info@frunze.kz"; /*Укажите адрес, га который должно приходить письмо*/
	$sendfrom   = "info@frunze.kz"; /*Укажите адрес, с которого будет приходить письмо, можно не настоящий, нужно для формирования заголовка письма*/
  $headers  = "From:" . strip_tags($sendfrom) . "\r\n";
  $headers .= "Reply-To: ". strip_tags($sendfrom) . "\r\n";
  $headers .= "MIME-Version: 1.0\r\n";
  $headers .= "Content-Type: text/html;charset=utf-8 \r\n";
  $subject = "Заявка с сайта";
  $message = "Заявка с сайта <br>
 <b>Имя пославшего:</b> $name <br>
 <b>Телефон:</b> $phone";
  $send = mail ($to, $subject, $message, $headers);
  if ($send == 'true')
  {
    echo '<center>
Спасибо за отправку вашего сообщения!
</center>';
  }
  else
  {
    echo '<center>

<b>Ошибка. Сообщение не отправлено!</b>

</center>';
  }
} else {
  http_response_code(403);
  echo "Попробуйте еще раз";
}

?>


js&
jQuery(document).ready(function () {
	jQuery("#modal_post").submit(function () {
		var postForm = jQuery('#modal_post');
		jQuery.ajax({
			type: "POST",
			url: "/wp-content/themes/danex_ltd/post.php",
		 	data: postForm.serialize(),
			success: function (data) {
				jQuery(postForm).html(data);
			},
			error: function (jqXHR, text, error) {
				jQuery(postForm).html(error);
			}
		});
		return false;
	});
});
jQuery(document).ready(function () {
	jQuery("#myform").submit(function () {
		var postForm = jQuery('#myform');
		jQuery.ajax({
			type: "POST",
			url: "/wp-content/themes/danex_ltd/post2.php",
		 	data: postForm.serialize(),
			success: function (data) {
				jQuery(postForm).html(data);
			},
			error: function (jqXHR, text, error) {
				jQuery(postForm).html(error);
			}
		});
		
		return false;
	});
	
});


код index.php
<a data-fancybox data-src="#myform" href="javascript:;">Заказать</a>
                        <div style="display: none;" id="myform">
							
        
                            <h4>Ваш выбор</h4>
                            <p>Тип:</p>
                            <p>{{ myOption.myType }}</p>
                            <p>Размер отверстия, a:</p>
                            <p>{{ myOption.mySize }}</p>
                            <p>Размер шага 1, t:</p>
                            <p>{{ myOption.myStep }}</p>
                            <p>Размер шага 2, t:</p>
                            <p>{{ myOption.myStep2 }}</p>
                            <p>Открытая поверхность:</p>
                            <p>{{ myOption.mySpace }}</p>
                            <p>Максимальная ширина:</p>
                            <p>{{ myOption.myMaxSize }}</p>
							
							<div id="myform">
							<div class="myform">
                            <input type="text" id="myform" placeholder="Введите ваше имя">
							<input type="text" placeholder="Введите ваш номер телефона">
							<a href="/wp-content/themes/danex_ltd/post2.php" class="m-btn" >Заказать</a>
						</div>
						</div>
								
                        </div>
							
                        </div>
  • Вопрос задан
  • 132 просмотра
Пригласить эксперта
Ответы на вопрос 1
AleksandrB
@AleksandrB
Совсем недавно вывел "Hello world"
Господи, убереги нас от такого кода.
Давай по порядку.
$sendfrom = "info@frunze.kz"; /*Укажите адрес, с которого будет приходить письмо, можно не настоящий, нужно для формирования заголовка письма*/

Из-за этого и попадает в спам. Многие ящики и не принимают такие письма, их могут отправить мошенники.
Для того что бы передавать другие параметры, нужно указать поля с этими параметрами. Например
<input type="text" placeholder="Ваш Email" name="email">

в php
$email = $_POST['email'];
//... остальной код
$message = "Заявка с сайта 
Имя пославшего: $name 
Телефон: $phone
Email: $email";

В $_POST['email'] записывается name из html тэга.
В остальном по аналогии.

А если честно, тут весь код переделывать нужно.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы