直接链接到 Ajax 搜索结果

Posted

技术标签:

【中文标题】直接链接到 Ajax 搜索结果【英文标题】:Direct link to Ajax search results 【发布时间】:2011-03-20 11:06:14 【问题描述】:

目前用户可以使用 php 和 ajax 搜索数据库,结果显示无需刷新页面。

这需要使用输入搜索条件 - 是否可以通过在 url 中包含条件来创建指向搜索结果的直接链接?

例如:

search.php?keywords=iphone

无需用户输入搜索条件即可返回任何适用于 iphone 的结果。

我的ajax代码如下:

function ajaxFunction()
var ajaxRequest;  // The variable that makes Ajax possible!

try
    // Opera 8.0+, Firefox, Safari
    ajaxRequest = new XMLHttpRequest();
 catch (e)
    // Internet Explorer Browsers
    try
        ajaxRequest = new ActiveXObject("Msxml2.XMLHTTP");
     catch (e) 
        try
            ajaxRequest = new ActiveXObject("Microsoft.XMLHTTP");
         catch (e)
            // Something went wrong
            alert("Your browser broke!");
            return false;
        
    

// Create a function that will receive data sent from the server
ajaxRequest.onreadystatechange = function()
    if(ajaxRequest.readyState == 4)
        var ajaxDisplay = document.getElementById('ajaxDiv');
        ajaxDisplay.innerhtml = ajaxRequest.responseText;
    

var kw = document.getElementById('kw').value;
var division = document.getElementById('division').value;
var queryString = "?kw=" + kw + "&division=" + division;
ajaxRequest.open("GET", "search/jsearch.php" + queryString, true);
ajaxRequest.send(null); 

【问题讨论】:

【参考方案1】:

你基本上检查 url 是否包含 keywords 查询字符串变量,如果是,你调用你的 ajax 函数,试试这个:

window.onload = function()
    if (getQueryVariable('keywords'))
    
        var kw = getQueryVariable('keywords');
        ajaxFunction(kw);
    
;

您需要修改 ajaxFunction 以接受来自 url 的参数。这是一个使用 javascript 获取查询字符串变量的函数:

getQueryVariable(variable) 
  var query = window.location.search.substring(1);
  var vars = query.split("&");
  for (var i=0;i<vars.length;i++) 
    var pair = vars[i].split("=");
    if (pair[0] == variable) 
      return pair[1];
    
  
 

【讨论】:

以上是关于直接链接到 Ajax 搜索结果的主要内容,如果未能解决你的问题,请参考以下文章

是否可以使用 href 直接链接到 Google 搜索结果?

Drupal 搜索模块直接链接到评论

html 从AJAX结果中填充的链接选择框

如何使用ajax在url中传递不同的链接值

从分页搜索链接到mysql单个记录

Hijax使用jQuery搜索友好的Ajax链接