2013-08-21 290 views
0

我有一个AJAX下拉菜单,根据三个不同的参数为用户提供一系列选项 - 一旦选择了这些选项,就会在下面生成一个列表。AJAX下拉菜单选择

当用户点击和项目,他被认为是:

legat.php?id=[number] 

我的问题是,当用户在浏览器中按下“go back”按钮,AJAX列表并不再显示生成名单。

在下拉菜单中的输入(“下拉菜单selections”)是相同的,但不产生下面的列表。

这是很大的实用性的缺陷,因为用户届时将有再次选择的三个参数。

我该如何解决这个问题?

的JavaScript:

function findLegater(val1, val2, val3) { 

var stu = document.getElementById(val1).value 
var ud = document.getElementById(val2).value 
var kva = document.getElementById(val3).value 

if (stu=="N" && ud =="0" && kva =="0") { 
document.getElementById("txtHint").innerHTML=""; 
} 
else { 
if (window.XMLHttpRequest) {// code for IE7+, Firefox, Chrome, Opera, Safari 
    xmlhttp=new XMLHttpRequest(); 
} 
else {// code for IE6, IE5 
    xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); 
} 
xmlhttp.onreadystatechange=function() { 
    if (xmlhttp.readyState==4 && xmlhttp.status==200) { 
     document.getElementById("txtHint").innerHTML=xmlhttp.responseText; 
    } 
} 

xmlhttp.open("GET","getlegat.php?s="+stu+"&u="+ud+"&k="+kva,true); 
xmlhttp.send(); 
} 
} 

PHP(接受输入):

$s=$_GET["s"]; 
$u=$_GET["u"]; 
$k=$_GET["k"]; 

include 'msql/msql-connect.php'; 

if ($s!= "N" && $u != "0" && $k!="0") { 
$query = "SELECT * FROM legater WHERE studiegrad LIKE '%$s%' and studie LIKE '%$u%' and     kvartal LIKE '%$k%'"; 
} 
else if ($s!= "N" && $u == "0" && $k=="0") { 
$query = "SELECT * FROM legater WHERE studiegrad LIKE '%$s%'"; 
} 
else if ($s!= "N" && $u != "0" && $k=="0") { 
$query = "SELECT * FROM legater WHERE studiegrad LIKE '%$s%' and studie LIKE '%$u%'"; 
} 
else if($s== "N" && $u != "0" && $k=="0") { 
$query = "SELECT * FROM legater WHERE studie LIKE '%$u%'"; 
} 
else if($s== "N" && $u != "0" && $k!="0") { 
$query = "SELECT * FROM legater WHERE studie LIKE '%$u%' and kvartal LIKE '%$k%'"; 
} 
else if($s== "N" && $u == "0" && $k!="0") { 
$query = "SELECT * FROM legater WHERE kvartal LIKE '%$k%'"; 
} 
else if($s!= "N" && $u == "0" && $k!="0") { 
$query = "SELECT * FROM legater WHERE studiegrad LIKE '%$s%' and kvartal LIKE '%$k%'"; 
} 

// Execute query 
$result = mysql_query($query) or die ("Error in" . $query); 
$number = mysql_num_rows($result); 

// Check result 
if ($number == 0) { 
    echo "Ingen legater fundet"; 
} 
else { 
    while ($row = mysql_fetch_array($result)) { 
    echo "<li><a href=\"legat.php?id=" . $row['id'] . "\">" . $row['navn'] . "</a> </li>"; 
    } 
} 

// free result set memory 
mysql_free_result($result); 

// close connection 
mysql_close($connection); 
+0

见http://www.jscripters.com/ajax-disadvantages-and-advantages/对AJAX的缺点。 – jeff

+1

'mysql_'已弃用。改为使用'mysqli'。而'mysql_num_rows'则完全浪费了服务器的能力。改为使用'SELECT COUNT(id)作为id_rows'。 – M1K1O

回答

0

您可以使用会议这个......当用户从下拉选择向下将其保存到会话.. 在页面加载获取ID 从会议并将其发送到服务器,得到结果..后会话结束销毁它