varzin
@varzin
UI/UX дизайнер в instadev.ru

Как на PHP отправить POST запрос программе через форму на сайте?

Добрый день. Я совсем не программист, поэтому не судите строго, если спрошу глупость. Мне нужна ваша помощь.

Есть сайт на PHP и софт такси, который может обрабатывать различные запросы.

Нужно, чтобы на сайте была возможность заказать обратный звонок через эту программу. Другими словами: через форму на сайте отправить запрос на создание заказа и передать ему норер телефона, а по завершении сообщить, удалась ли операция.

Форма примитивная:
<form id="order_form" method="post" action="order.php">
	<input type="text" name="order_phone" value="1234567" />
	<input type="submit" name="order_submit" value="Отправить" />
</form>

В документации к программе нашел такое описание подобных запросов: goo.gl/t6oBSv, но не знаю, как правильно написать такой запрос, тк, повторяюсь, я не программист.

Буду очень благодарен, если кто-то подскажет ответ.
Или может быть я совсем не в ту сторону копаю?
  • Вопрос задан
  • 5127 просмотров
Решения вопроса 1
Sander_Li
@Sander_Li
Backend developer
Js
$(function(){
$('input[name = "order_submit"]').click(function(){
   $.ajax({
       url: "test.php",
       type: "POST",
       data: {"phone":  $('input[name = "order_phone"]').val()},
       success:  function(res){
       alert(res);
    }
   });

return false;
});
});

А в test.php телефон будет доступен в $_POST['phone'];

Сработает при наличии библиотеки JQuery
Подключить ее можно так
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js">
</script>

Номер телефона нужно проверять на валидность.
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
fornit1917
@fornit1917
www.php.net/manual/ru/function.file-get-contents.php в функции file_get_contents есть параметр context, используя который можно отправлять из php пост-запросы. В документации и в гугле есть примеры.
Это не единственный способ, можно еще curl заюзать например.
Ответ написан
Комментировать
cyber-jet
@cyber-jet
Самое простое, без каких либо проверок на заполнение, для отправки на почту:
<form id="order_form" method="post">
    <input type="text" name="order_phone" value="1234567" />
    <input type="submit" name="order_submit" value="Отправить" />
</form>

if (isset ($_POST['order_phone'])) {
	$to = 'Адрес ящика получателя'
	$subject = 'Заполнена контактная форма с '.$_SERVER['HTTP_REFERER'];
	$subject = "=?utf-8?b?". base64_encode($subject) ."?=";
	$message = "Номер телефона: ".$_POST['order_phone'];
	$headers = 'Content-type: text/plain; charset="utf-8"';
	$headers .= "MIME-Version: 1.0\r\n";
	$headers .= "Date: ". date('D, d M Y h:i:s O') ."\r\n";
	mail($to, $subject, $message, $headers);
	echo ('<p style="color: green">Ваше сообщение получено, спасибо!</p>');
	$_POST['order_phone'] = '';
}
Ответ написан
Ваш ответ на вопрос

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

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