【问题标题】:Record data to a database using AJAX使用 AJAX 将数据记录到数据库
【发布时间】:2012-04-20 10:14:42
【问题描述】:

我需要使用 AJAX 将用户输入的 cmets 立即保存到数据库中。 这是评论框。

<div class="comment">
        <form action="comment.php">
        <textarea cols="35" name="comments"> Give us comment </textarea>
        <input type="button" value="comment" onclick="ajaxFunction()">
        </form>                 
 </div>

这是php代码

<?php

$link = mysql_connect("localhost","root","");
mysql_select_db("continental_tourism");

$comments = $_POST['comments'];

if($comments == "")
echo "Please type your comment";
else
{
$query = "insert into comment(comment) values('$comments') ";
mysql_query($query);
} 
return;
?>

我需要知道应该如何改变它。 谢谢你

【问题讨论】:

  • 我认为有必要看到ajaxFunction()。此外,如果您希望人们为您放下桌子,请询问。 SQL 注入不应该这么简单。请查看准备好的陈述。
  • 需要在ajaxfunction()中发送数据
  • 能否包含 ajaxFunction() 的代码?一般来说,你可以看看原型或jQuery之类的框架。
  • 你见过this吗?
  • @David Z 我没有做 ajaxFunction。这就是我需要的:)

标签: php javascript mysql html ajax


【解决方案1】:

我会像这样修改你的 HTML

<textarea cols="35" id="comments"> Give us comment </textarea>
<input type="button" value="comment" id="btnSave" />

还有剧本

$(function(){
 $("#btnSave").click(function(e){
  e.preventDefault();
  $.post("yourphpfile.php", { comments : $("#comments").val() } ,function(data){
     alert(data);
  });  
 }); 
});

上面的脚本将向 yourphpfile.php 发送一个 ajax 请求,该请求的值存在于 textarea 中,带有 id 注释。然后一旦它从服务器页面获取一些数据。它只是提醒它(如果需要,您可以在单独的 div 中显示它)。将数据保存到数据库后,您应该从 php 文件中回显响应。

正如前面提到的,在保存从查询字符串值读取的数据时,您应该小心 SQL 注入。在将其放入查询之前进行适当的清理。对不起,我不是一个 php 人。所以不知道该怎么做。

不要忘记将 jQuery 库包含到您的页面中

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js" type="text/javascript"></script>

如果遇到任何脚本错误,您可以使用 firebug 控制台调试脚本错误。

【讨论】:

  • @jeroen:当然。 :) 我会将其添加到答案中。
  • 你可以做一些简单的事情,比如运行 $escaped_value = mysql_real_escape_string($_POST['comment']);逃跑
  • 有很多不同的框架可以做到这一点,所以你肯定有自己的选择(即prototypejs.org/api/form/request)。但是,我肯定会使用其中之一而不是自己滚动,因为在不同的浏览器中肯定存在隐藏的陷阱。
  • @jeroen:我忘了防止默认行为。我更新了我的答案。感谢您提出。` preventDefault` 优于 return false;
  • 通常我也建议将 jQueryUI 更改为 jQuery,但我不喜欢这些 give me the codez 问题,所以我不会;)
猜你喜欢
  • 1970-01-01
  • 2015-05-21
  • 1970-01-01
  • 2012-04-06
  • 2014-11-23
  • 2018-03-16
  • 1970-01-01
  • 2014-08-11
  • 1970-01-01
相关资源
最近更新 更多