#php #html #ajax
#php #HTML #ajax
Вопрос:
Я изменил код здесь (http://www.w3schools.com/PHP/php_ajax_database.asp ) для обновления и отображения моей базы данных после ввода поля ввода и нажатия кнопки для отправки. У меня есть
<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 "amp;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? или как я могу сделать обновление плавным и последовательным?
Заранее спасибо.
Комментарии:
1. Ваш пример кода подвержен эксплойтам SQL. (Как и почти все примеры на w3schools. И вы бы нашли лучшее введение AJAX где-нибудь еще). — Я понятия не имею, что вы имеете в виду под 1,2,3,4,.. Но вместо утомительных ручных настроек xmlhttprequest используйте jQuery, который более надежно обрабатывает потенциальные проблемы с кэшированием.
2. Большое вам спасибо, оказывается, я вызывал данные слишком быстро, прежде чем они были сохранены в базе данных
Ответ №1:
Попробуйте проиндексировать свою базу данных, чтобы ускорить время отклика..