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/

データをテキストエリアに送信する代わりに、jQueryが提供するAJAXライブラリを確認してください

私は自分のフィドルを更新しました:http://jsfiddle.net/nfjAE/3/AJAX呼び出しの例を含むjQueryフリーの回答で。

于 2012-06-01T11:07:26.267 に答える
1

入力した各文字の代わりに、定義された時間間隔の後にajax呼び出しを送信して、セッションまたはデータベースに好きなように保存することができます。jqueryajaxを使用してデータを送信します。ここで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 に答える