2011-05-24 90 views
0

我修改了代码在这里(http://www.w3schools.com/PHP/php_ajax_database.asp)更新和显示我的数据库后,输入框键入并单击按钮提交。 我Ajax更新数据库后提交

<form method="post" action="process.php" id="processer" onsubmit="showUser('me');"> 
<label for="Process">Process</label><input type="text" name="process" id="process">  
<input type="submit" value="Process"> 
</form> 

我的Ajax代码发送:

xmlhttp.open("GET","getuser.php?q="+str+"&t=" + Math.random(),true); 
xmlhttp.send(); 

最后我getuser.php是

<?php 
$q=$_GET["q"]; 

$con = mysql_connect('localhost', 'root', ''); 
if (!$con) 
    { 
    die('Could not connect: ' . mysql_error()); 
    } 

mysql_select_db("short", $con); 

$sql="SELECT * FROM table WHERE creator = '$q'"; 

$result = mysql_query($sql); 

echo "<table border='1'> 
<tr> 
<th>id</th> 
<th>data</th> 
    </tr>"; 
    while($row = mysql_fetch_array($result)) 
     { 
    echo "<tr> 
    <td>" . $row['id'] . "</td> 
    <td>" . $row['data'] . "</td> 
    </tr>"; 
     } 
echo "</table>"; 

mysql_close($con); 
?> 

的问题是,当我点击提交,有时1次刷新,有时会刷新2次,其他则根本没有。假设我正在提交数字1到10,第一次通过我看到1,2,然后输入3后,我什么都看不到,然后突然3,4,然后什么也没有5(当我刚刚输入6) ,然后是6,然后是7,8.

我的php显示数据是否被缓存?或者我怎样才能使清爽流畅和一致?

在此先感谢。

+0

您的示例代码易受SQL漏洞攻击。 (就像w3schools上的所有例子一样,你会在其他地方找到更好的AJAX介绍)。 - 我不知道1,2,3,4是什么意思,但是不要用繁琐的手动xmlhttprequest设置,而是使用jQuery来更可靠地处理潜在的缓存问题。 – mario 2011-05-24 21:27:08

+0

非常感谢您,事实证明我在将数据存储到数据库之前太快地调用了数据 – 2011-05-24 21:36:39

回答

0

尝试索引数据库,以便获得更快的响应时间。