2010-07-24 122 views
2

当前用户可以使用php和ajax搜索数据库,并显示结果而不刷新页面。直接链接到Ajax搜索结果

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

例如:

search.php中的关键字= 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]; 
    } 
    } 
} 
+0

这是可行的 - 非常感谢你。 – Haribo83 2010-07-24 09:06:51

+0

@ haribo83:不客气 – Sarfraz 2010-07-24 09:08:04