Python / Javascript / AJAX实时搜索帮助

时间:2011-05-15 14:55:14

标签: javascript python ajax

我正在尝试使用python创建一个AJAX实时搜索(例如Google Suggest)。我是AJAX的新手,所以我开始阅读一些教程和其他有用的文档。我找到了一个例子,http://www.w3schools.com/ajax/ajax_aspphp.asp,这基本上是我想要完成的,但这个例子仅适用于asp / php。我到目前为止管理程序的python部分,但是我得到一个未定义的错误。

下面是我的javascript代码(test.js,与示例中的代码基本相同):

function showHint(str)
{
var xmlhttp;
if (str.length==0)
  {
  document.getElementById("txtHint").innerHTML="";
  return;
  }
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","search.py?q="+str,true);
xmlhttp.send();
}

在firefox 4中,它出现错误“str is undefined”。

下面是我的python代码的html部分:

<html>
    <head>
        <title>Live Search</title>
        <script src="http://localhost:8000/test.js" type="text/javascript"></script>
    </head>
    <body>
        <h1> Cities </h1>
        Enter Anything: <input type="text" id="sname" onkeyup="showHint(this.text)">
        %(search)s
    </body>
</html>

注意:在我使用onkeyup =“showHint(this.id)之前,但由于某些原因它不起作用..它不断传递”sname“作为查询而不是我在输入字段中键入的内容。

请帮忙

1 个答案:

答案 0 :(得分:2)

<input>元素没有属性文本。这就是为什么this.text和更晚str未定义的原因。也许<input type="text" id="sname" onkeyup="showHint(this.value)">会做你想做的事。