@Dmitriy__S

Как вызвать php скрипт без перезагрузки страницы?

Доброго времени суток.
Такая проблема:
Есть форма
<form id="form1"  method="post"> 
                    <ul>
                        <li><a href="#close" title="Close" class="close" onclick="closeForm()">x</a></li>
                        <li><p>Оставьте заявку<br> и наш консультант позвонит вам <br>в течении 15 минут.</p></li>
                        <li> 
                            <input type="text" id="name" name="clientName" placeholder="Ваше имя">
                        </li>
                        <li>
                            <input type="tel" id="phone" name="clientPhone" placeholder="Ваш контактный телефон">
                        </li>
                        <li>
                            <button type="submit" id="subBtn">Заказать звонок</button>
                        </li>
                    </ul>
            </form>

Есть php скрипт на отправку почты, если прописать в форме action="/php/code.php" он отрабатывает нормально
<?
if((isset($_POST["clientName"])&&$_POST["clientName"]!="")&&(isset($_POST["clientPhone"])&&$_POST["clientPhone"]!="")){ 
    $to = "....@...";
    $subject = "Письмо с сайта";
    $charset = "utf-8";
    $headerss ="Content-type: text/html; charset=$charset\r\n";
    $headerss.="MIME-Version: 1.0\r\n";
    $headerss.="Date: ".date('D, d M Y h:i:s O')."\r\n";
    $msg = "Имя: ".$_POST["clientName"]."\n";$msg .= "Телефон: ".$_POST["clientPhone"]."\n";
    mail($to, $subject, $msg, $headerss);
    echo 'Заявка отправлена!';
}
?>

Но, если я пытаюсь вызвать его без перезагрузки страницы, через js файл "/js/script.js":
$('#subBtn').click(function(){
    $.post(
        '/php/code.php',
        $('form1').serialize(),
        function(msg) { 
            $('#form1').hide('slow');
            alert(msg);
        )
    }
});

ничего не происходит.

если в .js прописываю
$('#subBtn').click(function(){
            alert("work");
});

сообщение показывается.
  • Вопрос задан
  • 1288 просмотров
Решения вопроса 1
qant
@qant
programer
нада не событие submit (не click) отлавливать и preventDefault() добавить.

$("#form1").submit(function(e) {

    e.preventDefault(); // avoid to execute the actual submit of the form.

    var form = $(this);
    
    $.ajax({
           type: "POST",
           url: '/php/code.php', //возможно тут нужен полный путь к файлу типа http://myweb.ru....
           data: form.serialize(), // serializes the form's elements.
           success: function(data)
           {
               alert(data); // show response from the php script.
           }
         });
});
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
scottparker
@scottparker
$('#subBtn').click(function(){
    $.post{
        '/php/code.php',
        $('form1').serialize(),
        function(msg) { 
            $('#form1').hide('slow');
            alert(msg);
        }
    }
});

скобки здесь проверьте
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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