在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代码是正常的,但是,脚本代码不足以进行重新搜索功能。 我该如何解决我的脚本代码? 求你帮帮我。
答案 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准备好的州议员