Если вы новичок, я бы посоветовал вам реализовать свой код, добавляя элементы один за другим, проверять функциональность и идти дальше.Этот способ поможет вам лучше анализировать и отлаживать код.
Так что здесь, возможно, проблема может быть с вашим оператором if
в коде PHP.
Просто попробуйте сначала указать это в своем PHP-коде и попробуйте, чтобы javascript совпадал с кодом сервера.
if(isset($_POST['contactFrmSubmit'])
{
echo "ok";
die();
}
Добавьте error
в $.ajax
, чтобы увидеть, нет ли ошибокпроисходит.
$.ajax({
type:'POST',
url:'submit_form.php',
data:$('form').serialize()
beforeSend: function () {
},
success:function(msg){
},
error(jqXHR jqXHR, String textStatus, String errorThrown)
{
}
});
Вы можете сделать еще несколько изменений в вашей для лучшей практики.
Во-первых, в javascript попробуйте сериализовать форму или использовать $. param для параметров POST
Примерно так:
$.ajax({
type:'POST',
url:'submit_form.php',
data:$('form').serialize()
beforeSend: function () {
},
success:function(msg){
}
});
или
var postData = {
"action": "test"
"contactFrmSubmit": 1,
"name": name,
"email": email,
"mobile": mobile,
"location": location,
"message": message
};
$.ajax({
type:'POST',
url:'submit_form.php',
data: postData,
beforeSend: function () {
},
success:function(msg){
}
});
Во-вторых, в файле PHP
попытайтесь найтивходящий запрос: ajax
if (is_ajax()) {
if(isset($_POST['contactFrmSubmit'])
&& !empty($_POST['name'])
&& !empty($_POST['email'])
&& (!filter_var($_POST['email'], FILTER_VALIDATE_EMAIL) === false)
&& !empty($_POST['mobile']) && !empty($_POST['location'])
&& !empty($_POST['message']))
}
function is_ajax() {
return isset($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest';
}
Наконец, если вы хотите вернуть больше значений в качестве ответа, используйте json_encode , который является общим стандартом
$response->status = "ok"
$response->status_code = 200
$json_response = json_encode($response);
return $json_response;
die();
Хотя вышеизложенное только для вашего понимания, всегда используйте header () для отправки статуса ответа и кода