Функция отправки формы, у вас есть строка e.preventDefault()
, однако функция никогда не принимала аргумент события e
.
$("form").on('submit', (function(){
e.preventDefault();
//...
});
Вместо этого должно быть
$("form").on('submit', (function(e) {
e.preventDefault();
//...
});
Поскольку отправка формы никогда не запрещается, форма отправляется как обычно, и вызов AJAX не выполняется полностью.
РЕДАКТИРОВАТЬ: Кроме того, следующие строки
var search = $('#search').val();
var dataString = 'search=' + search;
должны быть в пределах отправкифункция.Только тогда он получит значение #search
при отправке поиска.
EDIT4: обнаружил, что выполнение var dataString = 'search=' + search;
работает в любом случае, поэтому EDIT2 можно игнорировать.
EDIT2: нетслишком хорошо знакомы с PHP-аспектами, но данные POST обычно делаются с помощью объектов JavaScript.Попробуйте dataString
be
var dataString = { search: search };
Или, что еще лучше, попросите сериализовать саму форму
var dataString = $('form').serialize();
EDIT3: Найдены дополнительные скобки, которые могут быть причиной проблемы.
$("form").on('submit', -->(function(e){
Окончательный код должен быть
$(function () {
$("form").on('submit', function (e) {
e.preventDefault();
$.ajax({
type: "POST",
url: "searchpost.php",
data: $('form').serialize(),
success: function (data) {
$('#results').html(data);
}
});
});
});