我有这段代码:
<script>
function aa() {
xmlhttp=new XMLHttpRequest();
xmlhttp.open("GET","datafile.php?nm="+document.form1.t1.value,false);
xmlhttp.send(null);
document.getElementById("d1").innerHTML=xmlhttp.responseText; }
</script>
<form name="form1" method="post">
<input type="text" name="t1" OnKeyup="aa();" class="box" placeholder="You may search via Surname or Firstname">
<div id="d1"></div>
和datafile.php
<?php include "konek.php";
$nm1=$_GET['nm']; ?>
<?php
$res=mysql_query("select * from tblscholar where schoSurname like ('$nm1%') OR schoFirstname like ('$nm1%') AND schoUsername != 'admin'; ");
$c=1;
while($fet=mysql_fetch_row($res))
{ ?>
<td width='55%'><a href="searchviewForAdmin.php?id=<?php echo $fet[0]?>"><?php echo $fet[1]; ?> , <?php echo $fet[2]; ?> <?php echo $fet[3]; ?></a></td>
问题是,当我删除我在搜索栏中输入的所有内容时,所有结果都显示
答案 0 :(得分:0)
如果输入字段为空,您只需要清除数据:
function aa() {
if (document.form1.t1.value.length == 0){
document.getElementById("d1").innerHTML = "";
return ;
}
... rest of your code ...
}
注1: mysql_ *函数已被删除,使用mysqli或pdo
注2:您的代码容易受到sql注入攻击。在查询中使用它们之前清理您的输入
在php方面:
<?php
$nm1=$_GET['nm'];
if (empty($nm1)){
echo "no result";
exit;
}
答案 1 :(得分:0)
由于这件事,它已经归还了所有东西:
like ('$nm1%')
当$nm1
为空时,您的查询只是执行此操作:
like ('%') // Translates to 'get me everything from the table'
你需要一个逻辑检查器,上面写着:
if($nm1 !== '')
{
// do query, echo HTML
}
else
{
// do nothing
}