На самом деле, return false
имеет некоторые побочные эффекты в обработчиках событий jQuery, о которых большинство людей не знают.Если все, что вы хотите сделать, это запретить отправку формы, то вам следует использовать event.preventDefault()
.
. Чтобы упростить вашу жизнь, я бы рекомендовал изменить ваш PHP-файл так, чтобы он возвращал json, например так:
<?php
echo "{'status':'0'}";
?>
Затем укажите 'json' при выполнении поста:
$(document).ready(function(){
$("#btnc").click(function(evt){
$.post(
"php/snova_campanha.php",
{campanha : $("#campanha").val() },
function(data){
alert(data.status);
},
"json"
);
// Keep the form from submitting
evt.preventDefault();
});
});
Кроме того, я предложу изучить превосходный плагин формы jQuery от malsup, который заботится обольшинство из того, что вы пытаетесь сделать здесь.
Наконец, вы можете попробовать использовать полный вызов $.ajax
вместо $.post
:
$('#btnc').click(function(evt) {
$.ajax({
method: 'POST',
url: 'php/snova_campanha.php',
data: {
campanha: $('#campanha').val()
},
dataType: 'json',
success: function(data, status) {
alert(data);
},
error: function(jqXHR, status, err) {
alert('ERROR');
alert(String(err));
}
});
evt.preventDefault();
});
Вероятно, происходит то, что$.post
вызов вызывает ошибку.Использование $.ajax
, как указано выше, позволит вам уловить эту ошибку.