ajax在提交时显示文本

ajax display text on submit

本文关键字:显示 文本 提交 ajax      更新时间:2023-09-26

我有一个带有提交按钮的简单表单(如下)。我试图让用户在文本框中键入,然后当他/她单击提交时,页面将刷新并回显他们在div中键入的内容。用户键入的数据在回显之前存储在数据库中。问题是,当我点击提交时,输入不会立即显示。我必须点击刷新才能显示,当我这样做时,我的浏览器会弹出一个弹出窗口(safari),要求重新发送数据。这将导致在数据库中插入重复的数据。我有一种感觉,我需要使用javascript,我也可以用fadeIn使它更优雅,但我不知道如何做到这一点。我想我是在问,是否有一种方法可以使用javascript获取用户的文本,并将其插入到mysql数据库中,同时在刷新1或0(最好)时单击提交后显示它。感谢

这是我的代码:

<form method='POST'  action='index.php'>
<input type='text' name='text' id='text'>
<input type ='submit' value='submit' name='submit'>
</form>
<?php
$input=$_POST['text'];
$put=mysql_query("INSERT INTO table VALUES ('$input')");
echo "<div id='area'>";
//i connect to the DB and echo out the data here
echo "</div>";
?>

我会把php语句放在你真正的html代码之前,并像这样修改你的代码

<?php
if (isset($_POST['text']))
{
  $input = mysql_real_escape_string($_POST['text']);
  $put=mysql_query("INSERT INTO table VALUES ('$input')"); //At this point the info has been put inside the DB
  echo "<div id='area'>";
  //i connect to the DB and echo out the data here
  echo mysql_query("SELECT * FROM table");
  echo "</div>";
}
?>
<form method='POST'  action='index.php'>
<input type='text' name='text' id='text'>
<input type ='submit' value='submit' name='submit'>
</form>

你看不到它的原因是HTML是在你php之前加载的。所以我会做一个php页面,在那里所有的sql处理都会完成,一旦完成,就调用index.php,在那里查询数据库中的信息。

抛开代码容易受到的SQL注入攻击不谈,标准做法是通过重定向回表单所在位置来响应POST。在您的情况下,它将是运行SELECT from table的页面。

这里不需要使用AJAX。只需确保您执行以下操作之一:

  1. 请确保在插入数据后从数据库中进行SELECT
  2. 更好的是,if ($_SERVER['REQUEST_METHOD'] == 'POST'),而不是执行额外的SQL查询,只显示POSTed值,因为您已经知道它了

代码示例的旁注。如果您没有启用magic_quotes,它很容易受到SQL注入的影响,所以在查询中使用它之前,请确保正确地转义用户输入。