我对Ajax和JQuery完全陌生。我试图找出加载基于用户点击的一些结果而不加载新页面的最佳方式。Ajax或OnClick()加载
首先,我能够在页面的左侧自己实现ajax搜索功能。
我现在要做的是根据用户点击页面右侧的内容加载一些细节。这将显示他们从搜索中选择的食物的详细信息。
我应该为这个还是jQuery再次使用Ajax?有人可以告诉我如何做到这一点?我希望能够传递您在我网站上的html搜索结果中可以看到的id,并在点击时加载它。
以下是用户可以点击的搜索返回结果示例。类是项目id
<div class="foodRow"><span class="102">APPLE JUC,CND OR BTLD,UNSWTND,W/ ADDED VIT C</span></div>
这里是我的地盘,你可以看看,看看我的意思。
http://challengeyourdiet.com/dev/usda/
这里是我现在工作的相关代码。
阿贾克斯
<script type="text/javascript" src="js/jquery-1.3.2.js"></script>
<script type="text/javascript" src="js/jquery.watermark.js"></script>
<script type="text/javascript">
$(document).ready(function() {
function ajax_delay(str){
setTimeout("str",2000);
}
$("#faq_search_input").watermark("Begin Typing to Search");
$("#faq_search_input").keyup(function()
{
var faq_search_input = $(this).val();
var dataString = 'keyword='+ faq_search_input;
if(faq_search_input.length>2)
{
$.ajax({
type: "GET",
url: "ajax-search.php",
data: dataString,
beforeSend: function() {
$('input#faq_search_input').addClass('loading');
},
success: function(server_response)
{
window.setTimeout(function() {
$('#searchresultdata').html(server_response).show();
$('span#faq_category_title').html(faq_search_input);
if ($('input#faq_search_input').hasClass("loading")) {
$("input#faq_search_input").removeClass("loading");
}
}, 1200);
}
});
}return false;
});
});
</script>
HTML
<div class="innerLeft">
<div class="prod-subcontent">
<div class="prod-lcol fl-left">
<div class="prod-content">
<div class="faqsearch">
<div class="faqsearchinputbox">
<input name="query" type="text" id="faq_search_input" />
</div>
</div>
<div id="searchresultdata" class="faq-articles"> </div>
</div>
</div>
<div class="breaker"> </div>
</div>
</div> <!-- end innerLeft -->
<div class="innerRight">
<div class="prod-subsubhead">
<h4 class="faq_title"> <strong>Food Details For : </strong> <span id="faq_category_title">Keyword </span> </h4>
</div>
<div id="searchresults" class="faq-articles"> </div>
</div> <!-- end innerRight -->
<div class="breaker"> </div>
感谢您的帮助!
谢谢@jammykam!这有助于很多!我想要调用的页面是results.php。 (它位于同一个目录中)这将使用$ _GET方法获取id,然后运行一个mysqli查询来获取该食物的数据。最后,它会回应到页面。我试了一个简单的if语句来检查id是否被传递并回显出来。但是,页面上没有显示任何内容。有任何想法吗?不应该抓住这个ID并将它传回给这个页面吗?我也不确定这是在做什么'#selector-to-refine-data-to-load'?附:我现在正在使用数据方法和jQuery 1.11.0。谢谢 – MagentoMan
我也检查了控制台,我没有看到点击功能做任何事情。有什么建议?感谢好友 – MagentoMan
@MagentMan看着你的更新页面,它看起来像.load()现在是正确的。将脚本移动到'$(document).ready(function(){})'调用中。就像你现在使用的那样,它执行内联,并且在那个时候html元素不存在以供它附加。 – jammykam