【发布时间】:2019-06-24 04:22:36
【问题描述】:
我有一个使用 ajax 调用的 php 函数,然后使用 ajax 处理响应。但是,我想阻止页面重新加载。
我有index.php 包含对function1() 的调用,它包括ajaxcall.js 和jquery
然后是我的functions.php:
function function1(){
echo '
<form id="myform" action="" method="post" enctype="multipart/form-data">
<input type="text" name="callyoukai_search" id="myInput" onkeydown="searchfiltersajax(this)" placeholder="type an anime name" title="Type in a name">
</form>
<div id="table_recentanime" class="hscroll">
<table dir="ltr" id="myTable">';
// echo some table rows
}
if (isset($_POST['callyoukai_search'])) {
//echo "!!!" . $_POST['callyoukai_search'] . "the post value in php!!!!!!";
//echo
youkai_search($_POST['callyoukai_search']);
}
function youkai_search ($search_word){
// use $search_word to do a database query
return $result;
}
我的 ajaxcall.js
function searchfiltersajax(search_word){
if(event.key === 'Enter') {
console.log("yes");
console.log(search_word.value);
document.getElementById("myform").addEventListener("Keypress", function(event){
event.preventDefault()
});
jQuery.ajax({
url: '../wp-content/plugins/youkai_plugin/youkai_plugin.php',
type: 'post',
data: { "callyoukai_search": "1"},
success: function(response) { var container = document.getElementById("myTable");
container.innerHTML = response;
console.log('php gave javascript '); console.log(response); console.log('php gave javascript '); }
});
console.log ("done");
}
}
我的 ajax 调用工作正常。它使用所需的search_word调用php函数,搜索结果就像我想要的那样替换div内容。但是,在此之后,页面会重新加载。
如何防止重新加载?我试过preventDefault(),但是我用的方式不行。
提前致谢
【问题讨论】:
-
如果我没看错,你的 ajax 应该在
addEventListener的回调中
标签: javascript php jquery ajax