每隔很多秒自动保存textarea

时间:2012-04-07 01:30:53

标签: php ajax jquery

我需要帮助“自动保存”textarea。基本上,每当用户在textarea中输入时,我想在我们的数据库中保存“草稿”。例如,用户正在键入博客帖子。每15秒我希望脚本使用输入到textarea中的所有文本输入来更新数据库。

我希望通过jQuery / Ajax实现这一点,但我似乎无法找到满足我需求的任何内容。

非常感谢任何有关此事的帮助!

更新:

这是我的PHP代码:

<?php

$q=$_GET["q"];
$answer=$_GET["a"];

//Connect to the database
require_once('mysql_connect.php') ;

$sql="UPDATE english_backup SET q".$q."='".$answer."' WHERE student_id = {$_COOKIE['student']} LIMIT 1";
$result = mysqli_query($dbc, $sql);

&GT;

这是我的javascript代码:

<script type="text/javascript">
function showUser(str, answer)
{
if (str=="")
  {
  document.getElementById("txtHint").innerHTML="";
  return;
  } 
if (window.XMLHttpRequest)
  {// code for IE7+, Firefox, Chrome, Opera, Safari
  xmlhttp=new XMLHttpRequest();
  }
else
  {// code for IE6, IE5
  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
xmlhttp.onreadystatechange=function()
  {
  if (xmlhttp.readyState==4 && xmlhttp.status==200)
    {
    document.getElementById("txtHint").innerHTML=xmlhttp.responseText;
    }
  }
xmlhttp.open("GET","getuser_english.php?q="+str+"&a="+answer,true);
xmlhttp.send();
}
</script>

2 个答案:

答案 0 :(得分:5)

function saveText() {
    var text = $("#myTextArea").val();
    // ajax call to save the text variable

    // call this function again in 15 seconds
    setTimeout(saveText, 15000);
}();

答案 1 :(得分:1)

我认为你想要类似ajax ......我正在使用ajax jQuery,所以你需要jQuery Library来实现它。下载它。您可以在网站的文档选项卡上找到教程。

 //in your javascript file or part
$("textarea#myTextArea").bind("keydown", function() {
        myAjaxFunction(this.value) //the same as myAjaxFunction($("textarea#myTextArea").val())
});

function myAjaxFunction(value) {
    $.ajax({
        url: "yoururl.php",
        type: "POST",
        data: "textareaname=" + value,
        success: function(data) {
            if (!data) {
                alert("unable to save file!");
            }
        }
    });
}

 //in your php part
 $text = $_POST["textareaname"]; 
 //$user_id is the id of the person typing
 $sql = "UPDATE draft set text='".$text."' where user_id='".$user_id."'"; //Try another type of query not like this. This is only an example
 mysql_query($sql);
 if (mysql_affected_rows()==1) {
    echo true;
 } else echo false;

嘿大家我还有问题请看这里https://stackoverflow.com/questions/10050785/php-parse-html-using-querypath-to-plain-html-characters-like-facebook-twitter