首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何停止xmlhttp.open复制整个页面?(ajax livesearch)

如何停止xmlhttp.open复制整个页面?(ajax livesearch)
EN

Stack Overflow用户
提问于 2011-02-14 17:42:37
回答 1查看 382关注 0票数 0

我使用的是一个简单的“实时搜索”脚本,它在用户输入文本框时显示来自MySQL数据库的结果。如果Javascript指向一个完全独立的页面,它会非常好,但我需要它指向同一个页面。不幸的是,当我尝试这样做时,当生成结果时,页面本身就会被复制。

这项工作如预期的那样:

代码语言:javascript
复制
    Document called: "test.php" containing JavaScript below and test2.php containing the PHP code

    xmlhttp.open("GET","test2.php?livesearch="+str,true);
    xmlhttp.send();

这将在页面中创建一个页面:

代码语言:javascript
复制
    Document called: "test.php" containing both the JavaScript and PHP code below

    xmlhttp.open("GET","?livesearch="+str,true);
    xmlhttp.send();

我理解这是因为它是在循环中打开自己,但我不知道我应该在代码中修改什么来避免这种情况。任何帮助都会非常感谢,因为我还没有找到多少帮助通过谷歌。

这是我所有的代码:

Javascript

代码语言:javascript
复制
function showResult(str)
{
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("livesearch").innerHTML=xmlhttp.responseText;
    }
  }
xmlhttp.open("GET","&livesearch="+str,true);
xmlhttp.send();
}

PHP代码

代码语言:javascript
复制
if(isset($_GET['livesearch'])) {liveSearch();}

function liveSearch() {
    $q=$_GET["livesearch"]; 
    $sqlQuery = "SELECT * FROM something WHERE something LIKE '%" . $q . "%' ;
    etc etc etc
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-02-14 18:22:12

你为什么要让代码指向自己呢?拥有一个只返回所需内容的web服务似乎是合乎逻辑的。这并不是说你必须重复代码,只需要做一些普通的方法,在整个页面或web服务中显示内容。

如果需要调用同一个页面,则可以始终使用正则表达式删除所需的内容,而不是替换整个页面。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4995365

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档