ivaneliseeff
@ivaneliseeff
Кратко о себе

Как сделать кнопку отправки?

Приветствую!

Запилил форму обратной связи, который отправляет смс вместо отправки e-mail.

Отправляется через HTTP GET запрос, от пользователя требуется только ввести своё имя и номер телефона.
Вопрос вот в чём:

Как сделать что бы по нажатию на кнопку отправки просто выскакивало милое сообщение о том что сообщение отправлено, а не перекидывало на файл *.php?
  • Вопрос задан
  • 2609 просмотров
Пригласить эксперта
Ответы на вопрос 5
Alexufo
@Alexufo
противоречивый, сложный, весь компьютерный.
malsup.com/jquery/form/#ajaxSubmit

Или просто: через аякс отправляете запрос.
Ответ написан
Комментировать
samoilenkoevgeniy
@samoilenkoevgeniy
Lead Full-Stack Web Developer
Примерный код отправки данных из формы без перезагрузки.

function send_form(form_id) {
    var form = $('#'+form_id);
    var msg   = form.serialize();
    $.ajax({
        type: 'GET', // для вас гет, может быть и пост и json
        url: '../handlers/hSentEmailCall.php', // Обработчик собственно
        data: msg,
        success: function(data) {
            // запустится при успешном выполнении запроса и в data будет ответ скрипта
        },
        error:  function(){
            alert('Ошибка!'); // запуститься при ошибке
        }
    });

}
Ответ написан
Комментировать
PaulZi
@PaulZi
Через AJAX, например jQuery:
$(document).on('submit', 'form', function(){
	$.post($(this).attr('action'), $(this).serialize(), function(data){ alert(data); }); // в data ответ сервера, сюда и вывести сообщение об успешной отправке или ошибке
});
Ответ написан
Комментировать
@dmitryosipov
Юзайте location header
Ответ написан
Комментировать
Лучше через аякс. Подключи jquery, и сделай, например, так:

<script src="http://yandex.st/jquery/1.8.3/jquery.min.js" type="text/javascript"></script>	
<form class="myForm">
	<p>Имя: <input name=name></p>
	<p>Телефон: <input name=phone></p>
	<input type=submit value=Отправить>
</form>
<script>
	$(function(){
		$('.myForm').submit(function(e){
			e.preventDefault();
			$.get('myScript.php', {
				name: $(this).find('input[name=name]'),
				phone: $(this).find('input[name=phone]'),
			},
			function(data){
				alert('Принято');
			})
		})
	})
</script>


Ну или без аяксов, но с айфреймом:

index.php
<iframe id="myIframe" style="display: none;"></iframe>	
<form class="myForm" target="myIframe" action="myScript.php">
	<p>Имя: <input name=name></p>
	<p>Телефон: <input name=phone></p>
	<input type=submit value=Отправить>
</form>


myScript.php
<?
	if($_GET['name'] && $_GET['phone']){
		// что-то делаем: базу заносим, смс-ку отправляем себе итп
		exit('
			<script>
				alert("Принято");
			</script>
		');
	}
?>
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы