在Ajax中,我希望有2个以上的输入功能。我怎样才能做到这一点?

时间:2014-01-19 18:12:59

标签: javascript php ajax

在Ajax中,我希望有2个以上的输入功能。我怎样才能做到这一点? 也就是说,通常“q”很受欢迎。但我想在ajax程序中添加“p”参数。 下面是我的html脚本代码。

 <form>
 <input type="text" name="FirstName" maxlength="20" onkeyup="showUser(this.value)">
 <input type="text" name="LastName" maxlength="20" onkeyup="showUser(this.value)">
 </form>

 <br>
 <div id="txtHint"><b>Person info will be listed here.</b></div>

  <script>
  function showUser(str){

   if (str.length==0)
  { 
  document.getElementById("txtHint1").innerHTML="";
  return;
   }
   var xmlhttp=new XMLHttpRequest();
  xmlhttp.onreadystatechange=function()
 {
 if (xmlhttp.readyState==4 && xmlhttp.status==200)
  {
  document.getElementById("txtHint1").innerHTML=xmlhttp.responseText;
  }
 }

 var selectedLang = document.getElementById('lang').value;

 xmlhttp.open("GET","ds_hint_"+selectedLang+".php?q="+str,true);
 xmlhttp.open("GET","ds_hint_"+selectedLang+".php?p="+str,true);

 xmlhttp.send();
 } 
 </script>

在脚本中,“xmlhttp.open(”GET“,”ds_hint _“+ selectedLang +”。php?p =“+ str,true);”被添加以通过“q”参数重新搜索第一个搜索结果。

所以,我的php代码如下。      

  mysqli_select_db($con,"ajax_demo");
  $sql="SELECT * FROM persons WHERE FirstName = '".$q."' and LastName = '".$p."'";

  $result = mysqli_query($con,$sql);

  echo "<table border='1'>
  <tr>
  <th>Firstname</th>
  <th>Lastname</th>
  <th>Age</th>
  <th>Hometown</th>
  <th>Job</th>
  </tr>";

  while($row = mysqli_fetch_array($result))
  {
  echo "<tr>";
  echo "<td>" . $row['FirstName'] . "</td>";
  echo "<td>" . $row['LastName'] . "</td>";
  echo "<td>" . $row['Age'] . "</td>";
  echo "<td>" . $row['Hometown'] . "</td>";
  echo "<td>" . $row['Job'] . "</td>";
  echo "</tr>";
  }
  echo "</table>";

  mysqli_close($con);
 ?>

我认为PHP代码是正常的,但是,脚本代码不足以进行重新搜索功能。 我该如何解决我的脚本代码? 求你帮帮我。

1 个答案:

答案 0 :(得分:1)

您的查询字符串应该像

  xmlhttp.open("GET","ds_hint_"+selectedLang+".php?q="+qstr+"&p="+pstr,true);

和你的php

$q=$_GET['q'];
$p=$_GET['p'];
mysqli_select_db($con,"ajax_demo");
$sql="SELECT * FROM persons WHERE FirstName = '".$q."' and LastName = '".$p."'";

虽然指出这不是为sql注入过滤 我个人更喜欢pdo准备好的州议员