即使您在该框中按下任何按键,onkeypress 也会触发。所以这就是发生的事情:
- 您输入“j”
- showHint() 被触发,发送 'j' 到服务器
- 该脚本将“j”插入您的用户表中
- 您输入“o”,文本字段中现在有“jo”
- showHint() 被触发,发送 'jo' 到服务器
- 该脚本将“jo”插入您的用户表中
- etc...
换句话说,您根本没有显示任何提示,您只是盲目地将用户输入的任何内容插入数据库中。
如果您想显示提示,那么您应该至少执行“SELECT”查询并将结果返回到您的页面。
你还应该使用类似的东西Mootools http://mootools.net or jQuery http://jquery.com/进行 AJAX 调用。他们将为您处理构建/发送请求的困难部分,而不必担心用户使用的浏览器。
另外,请阅读有关SQL注入 http://en.wikipedia.org/wiki/SQL_injection在将像您这样的脚本发布到野外之前。
您还有一个格式错误的插入查询。要插入新记录,基本语法是:
INSERT INTO sometable (field1, field2, field3, ...) VALUES (value1, value2, value3, ...)
您在那里混合了某种部分“更新”查询,其格式为
UPDATE sometable SET field1=value1, field2=value2, ....
我看不出您的查询如何像现在一样将任何内容插入数据库,因为语法完全被破坏了。