Предупреждение начальной загрузки не отображается после отправки формы php-ajax

#php #jquery #ajax #twitter-bootstrap #bootstrap-modal

#php #jquery #ajax #twitter-bootstrap #bootstrap-модальный

Вопрос:

Я пытаюсь показать предупреждение, когда пользователь отправляет форму, независимо от того, успешно это или нет. Скрипт работает нормально при отправке данных, но предупреждение не отображается.Код-

ВАЖНО — форма находится в режиме начальной загрузки.

HTML — это:

 <div class="col-md-12">
     <form id="inquiry-form" method="post" action="inq.php" role="form">
         <div class="messages"></div>
         <div class="controls">
             <div class="form-group">
                 <label for="Name">Name</label>
                 <input type="text" name="name" class="form-control" id="exampleInputEmail1" placeholder="Name" required="required" data-error="Name is required."/>
                 <div class="help-block with-errors"></div>
             </div>
         </div>
        <button type="submit" class="btn btn-default">Submit</button>
    </form>
</div>
 

Мой php-скрипт:

 try
{
$sql = mysqli_query($conn,"INSERT INTO wig (fname, lname, email,msg)
VALUES ('$fname', '$lname', '$email','$msg')");



$responseArray = array('type' => 'success', 'message' => $okMessage);
}
catch (Exception $e)
{
$responseArray = array('type' => 'danger', 'message' => $errorMessage);
}

if (!empty($_SERVER['HTTP_X_REQUESTED_WITH']) amp;amp; strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest') {
$encoded = json_encode($responseArray);

header('Content-Type: application/json');

echo $encoded;
}
else {
echo $responseArray['message'];
}
 

И jquery для обработки отправки формы:

 $(function () {

$('#inquiry-form').validator();

$('#inquiry-form').on('submit', function (e) {
    if (!e.isDefaultPrevented()) {
        var url = "inq.php";

        $.ajax({
            type: "POST",
            url: url,
            data: $(this).serialize(),
            success: function (data)
            {
                var messageAlert = 'alert-'   data.type;
                var messageText = data.message;

                var alertBox = '<div class="alert '   messageAlert   ' alert-dismissable fade in role=alert"><button type="button" class="close" data-dismiss="alert" aria-label="Close"><span aria-hidden="true">amp;times;</span></button>'   messageText   '</div>';
                if (messageAlert amp;amp; messageText) {
                    $('#inquiry-form').find('.messages').html(alertBox);
                    $('#inquiry-form')[0].reset();
                }
            }
        });
        return false;
    }
})
});
 

Комментарии:

1. вы пытались отладить success функцию ajax?

2. да, @cmnardi, на самом деле он отлично работает без модального, но в mdal он не работает.

3. Работает ли AJAX вообще?

4. Вы должны использовать консоль отладки!! Нажмите F12 и cklick на console вкладке, есть ошибки javascript. также используйте console.log(data) в своей функции успеха, может быть, вы найдете ошибку

5. В console разделе Сеть вы также можете увидеть, что было возвращено из вашего вызова ajax.

Ответ №1:

Попробуйте добавить die в свой php-скрипт вот так:

     echo $encoded;   
}else {
    echo $responseArray['message'];
}
die();