2013-05-02 135 views
-2

我下面这个教程:页面清爽的提交

http://www.plus2net.com/php_tutorial/ajax-search.php

他们为我提供了我要找的。但我现在面临的唯一问题是,当我按下回车键,页面清爽:(但我并不想这样做,

DEMO:

http://www.plus2net.com/php_tutorial/ajax-search-demo.htm

HTML代码

<html> 
<body> 
    <style> 
     #displayDiv 
     { 
      background-color: #ffeeaa; 
      width: 200; 
     } 
    </style> 
    <script type="text/javascript"> 
     function ajaxFunction(str) { 
      var httpxml; 
      try { 
       // Firefox, Opera 8.0+, Safari 
       httpxml = new XMLHttpRequest(); 
      } 
      catch (e) { 
       // Internet Explorer 
       try { 
        httpxml = new ActiveXObject("Msxml2.XMLHTTP"); 
       } 
       catch (e) { 
        try { 
         httpxml = new ActiveXObject("Microsoft.XMLHTTP"); 
        } 
        catch (e) { 
         alert("Your browser does not support AJAX!"); 
         return false; 
        } 
       } 
      } 
      function stateChanged() { 
       if (httpxml.readyState == 4) { 
        document.getElementById("displayDiv").innerHTML = httpxml.responseText; 

       } 
      } 
      var url = "ajax-search-demock.php"; 
      url = url + "?txt=" + str; 
      url = url + "&sid=" + Math.random(); 
      httpxml.onreadystatechange = stateChanged; 
      httpxml.open("GET", url, true); 
      httpxml.send(null); 
     } 
    </script> 
    </head> 
    <body> 
     <form name="myForm"> 
     <input type="text" onkeyup="ajaxFunction(this.value);" name="username" /> 
     <div id="displayDiv"> 
     </div> 
     </form> 
    </body> 
</html> 

PHP CODE(Ajax的搜索demock.php)

<? 
//*************************************** 
// This is downloaded from www.plus2net.com // 
/// You can distribute this code with the link to www.plus2net.com /// 
// Please don't remove the link to www.plus2net.com /// 
// This is for your learning only not for commercial use. /////// 
//The author is not responsible for any type of loss or problem or damage on using this script.// 
/// You can use it at your own risk. ///// 
//***************************************** 
//error_reporting(E_ERROR | E_PARSE | E_CORE_ERROR); 
////// Your Database Details here ///////// 
$dbservertype='mysql'; 
$servername='127.0.0.1'; 
$dbusername='test'; 
$dbpassword='test'; 
$dbname='sql_tutorial'; 

//////////////////////////////////////// 
////// DONOT EDIT BELOW ///////// 
/////////////////////////////////////// 

connecttodb($servername,$dbname,$dbusername,$dbpassword); 
function connecttodb($servername,$dbname,$dbuser,$dbpassword) 
{ 
    global $link; 
    $link=mysql_connect ("$servername","$dbuser","$dbpassword"); 
    if(!$link){die("Could not connect to MySQL");} 
    mysql_select_db("$dbname",$link) or die ("could not open db".mysql_error()); 
} 
///////////////////// Main Code sarts //////// 


$in=$_GET['txt']; 
$msg=""; 
if(strlen($in)>0 and strlen($in) <20){ 
    $t=mysql_query("select name, id from student where name like '$in%'"); 
    while($nt=mysql_fetch_array($t)){ 
    $msg.=$nt[name]."->$nt[id]<br>"; 
    } 
} 
echo $msg; 

?> 

UPDATE:

OK回车事情就解决了:D这实在是太棒了!!多了一个请求,请

我想只有当输入达到8个字符来获取数据。可能吗 ?

+0

'onkeyup =“ajaxFunction(this.value);”'只需添加**返回false **像这样'onkeyup =“ajaxFunction(this.value); return假' – dreamweiver 2013-05-02 14:17:02

+0

在现实世界的情况下,让它与你一起工作t JavaScript! – Ryan 2013-05-02 14:36:25

回答

0

实际上,您并未提交任何内容,因此从技术上讲,根本不需要<form>元素,只需将其删除即可。

或者,如果您是严格标准的坚持者,请在表单上设置action="javascript:void(null)以防止其执行任何操作。

+0

这里没有提交按钮,标签的存在问题也是如此吗? – dreamweiver 2013-05-02 14:17:59

+0

即使没有提交按钮,当按下Enter键时,这是包含单个输入的表单的默认行为。如果存在多个表单元素,则标准行为是模拟表单中第一个提交按钮的点击。 – 2013-05-02 14:19:11

+0

哦,好吧,这对我来说是新东西:)无论如何谢谢:) – dreamweiver 2013-05-02 14:22:33

0

您可以向表单添加一个提交按钮(并隐藏在您的CSS中)并将以下内容放入其中;

<input type="submit" name="submit" value="Submit" onclick="return false;"/> 
+0

工作:D非常感谢toby :) – 2013-05-02 14:23:59

+0

但是当我试图选择这个答案。 TICK标记未到:(正在尝试... – 2013-05-02 14:24:40

+0

我认为它只会让你在经过这么多分钟后,很高兴它为你工作! – Toby 2013-05-02 14:38:29

0

制作如下更改,也将努力:

返回FALSE;

此行之后:

httpxml.send(空);

AND

的onkeyup = “返回ajaxFunction(THIS.VALUE);”

的inslead:

的onkeyup =“ajaxFunction(此。值); “

,或者您还可以添加按照形成标签:

的onsubmit = ”返回false;“

与@Kolink同意” 如果你不这样做想要提交日期,则不需要表单标签