当用户输入搜索词时,我使用jquery从PHP类加载搜索结果。问题是jquery在主页面上第一轮运行并执行所需的函数,但是当用户输入搜索关键字并且通过Ajax从同一页的类文件加载结果时,jquery不执行所需的函数。
我要做的是,当搜索结果加载到主页上时,它应该只显示引用和作者,而不是阿拉伯语和参考。当用户单击引用时,它应该像手风琴一样,切换阿拉伯语和引用的DIV容器。
然而,虽然jquery可以很好地从类文件加载结果,但它不会在加载搜索结果时隐藏阿拉伯语和引用的容器,也不会在用户单击引用以显示容器时运行单击事件,如Firebug所示。
索引:
$(function() {
$(".bsearch")
.keydown(function() {
//create post data
var postData = {
"search" : $(this).val()
};
//make the call
$.ajax({
type: "POST",
url: "quotes_in.php",
data: postData, //send it along with your call
success: function(response){
$("#left").html(response);
}
});
}),
$("div#smore").hide();
//toggle the componenet with class msg_body
$("p#s_quotes").click(function()
{
$(this).next("div#smore").slideToggle(200);
}),
});
引用:
include_once "inc/class.quotes.inc.php";
$quotes = new Quotes($db);
if (isset($_POST['search']))
$quotes->searchQuotes();
类文件中设置搜索格式的函数:
---SQL QUERY for SEARCH---
public function formatSearch($row, $search)
{
return "
. "
" . $cQuote . "
". "
" . $this->h($row['cArabic']) . "
". "
Source: " . $this->h($row['vReference']) . "
. "
}