Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/294.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php AJAX下拉菜单选择_Php_Javascript_Ajax - Fatal编程技术网

Php AJAX下拉菜单选择

Php AJAX下拉菜单选择,php,javascript,ajax,Php,Javascript,Ajax,我有一个AJAX下拉菜单,根据三个不同的参数为用户提供一系列选项——一旦选择了这些参数,下面将生成一个列表 当用户单击并删除项目时,他将被带到: legat.php?id=[number] 我的问题是,当用户在浏览器中按下“返回”按钮时,AJAX列表不再显示生成的列表 下拉列表中的输入(“下拉选择”)相同,但不生成下面的列表 这是一个很大的可用性缺陷,因为用户将不得不再次选择这三个参数 我如何解决这个问题 JavaScript: function findLegater(val1, val2

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

当用户单击并删除项目时,他将被带到:

legat.php?id=[number] 
我的问题是,当用户在浏览器中按下“
返回
”按钮时,AJAX列表不再显示生成的列表

下拉列表中的输入(“下拉<代码>选择”)相同,但不生成下面的列表

这是一个很大的可用性缺陷,因为用户将不得不再次选择这三个参数

我如何解决这个问题

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();
}
}
$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);
PHP(接收输入):

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();
}
}
$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);
$s=$\u GET[“s”];
$u=$\u获取[“u”];
$k=$_GET[“k”];
包括“msql/msqlconnect.php”;
如果($s!=“N”&&$u!=“0”&&$k!=“0”){
$query=“从legater中选择*,其中studiegrad类似“%$s%”,studie类似“%$u%”,kvartal类似“%$k%”;
}
如果($s!=“N”&&$u==“0”&&$k==“0”){
$query=“从legater中选择*,其中studiegrad类似“%$s%”;
}
如果($s!=“N”&&$u!=“0”&&$k==“0”){
$query=“从legater中选择*,其中studiegrad类似“%$s%”和studie类似“%$u%”;
}
如果($s==“N”&&$u!=“0”&&$k==“0”){
$query=“从legater WHERE studie中选择*,如“%$u%”;
} 
如果($s==“N”&&$u!=“0”&&$k!=“0”){
$query=“从legater中选择*,其中studie类似“%$u%”,kvartal类似“%$k%”;
} 
如果($s==“N”&&$u==“0”&&$k!=“0”){
$query=“从legater中选择*,其中kvartal类似“%$k%”;
} 
如果($s!=“N”&&$u==“0”&&$k!=“0”){
$query=“从legater中选择*,其中studiegrad类似“%$s%”,kvartal类似“%$k%”;
} 
//执行查询
$result=mysql\u query($query)或die(“..$query中的错误”);
$number=mysql\u num\u行($result);
//检查结果
如果($number==0){
echo“Ingen legater fundet”;
}
否则{
while($row=mysql\u fetch\u数组($result)){
回声“
  • ”; } } //释放结果集内存 mysql_free_result($result); //密切联系 mysql_close($connection);
    这根本不是一个“新”问题。这个问题已被许多人发现,并在许多地方得到解决


    这将导致许多不同的解决方案:

    您可以使用会话来解决此问题。。。当用户从下拉列表中选择时,将其保存到会话。。在页面加载时,从会话获取id并将其发送到服务器,获取结果。。会话结束后,请销毁它。

    有关AJAX的缺点,请参阅。
    mysql\uuu
    已被弃用。改用mysqli。而
    mysql\u num\u rows
    完全是对服务器电源的浪费。改用
    选择COUNT(id)作为id\u行