2

我有一个文本区域。我想在用户输入时更新服务器上的 PHP 会话。因此,当他们打字时,会话会更新。如果他们在没有提交表单的情况下离开页面,我仍然可以调用并返回“实时会话创建”的信息?

看起来像:

<form action="submit.php">

<textarea rows="10" id="question" name="question"></textarea>

<input type="submit" value="save">

</form>

<script type="text/javascript">
var formData = $("#question").val();
$(function() {
        function goSession(formData) {
            POST="http://updatesession.php.com/?do="+formData;
        }
        $("#question").change()({
            goSession();
        });
    });

</script>

PHP

<?php

session_start();

$sessionTheSavedQuestionForm=$_REQUEST["do"];
if($sessionTheSavedQuestionForm=="0" || $sessionTheSavedQuestionForm==""){
    $_SESSION["sessionTheSavedQuestionForm"]=0;
} else {
    $_SESSION["sessionTheSavedQuestionForm"]=$sessionTheSavedQuestionForm;
}

?>
4

3 回答 3

2

使用计时器和键入的字符的组合。

这就是我想出的。我有一段时间没有使用 JS,所以它可能看起来有点生疏,但它确实有效。

在顶部的文本区域中输入一些内容,然后观察它出现在底部的文本区域中

http://jsfiddle.net/nfjAE/

不要将数据发送到 textarea,而是查看jQuery 提供的 AJAX 库

我已经更新了我的小提琴: http: //jsfiddle.net/nfjAE/3/,其中包含一个无 jQuery 的答案,包括一个 AJAX 调用示例。

于 2012-06-01T11:07:26.267 回答
1

您可以在定义的时间间隔后发送 ajax 调用,而不是键入每个字符以保存在会话或数据库中,无论您喜欢什么。使用 jquery ajax 发送数据。您可以在此处找到如何发送 ajax 调用

function SendData(event) {


/* get some values from elements on the page: */
var $form = $( this ),
    term = $form.find( 'input[name="s"]' ).val(),
    url = $form.attr( 'action' );

/* Send the data using post and put the results in a div */
$.post( url, { s: term },
  function( data ) {

  }
);
}​

setInterval(SendData, 5000); // This will call above method after every 5 seconds
于 2012-06-01T09:33:22.060 回答
0

你可以试试;

$("#question").keyup(function() {
var formData = $("#question").val();
 //AJAX REQUEST
});

并在您的文本区域中作为;

<textarea rows="10" id="question" name="question"><?php echo $sessiondata; ?></textarea>
于 2012-06-01T10:49:35.920 回答