2012-02-09 12 views
0

私は100の質問のページがあります。PHP自動保存コード

ユーザーがフォームを送信すると、データは次のページの表に保存されます。

私がしたいのは、フォームを送信する前に30秒ごとにユーザーの選択した回答を表に保存することです。

誰かがどんな方向に向かうのか教えてください。

30秒ごとにスクリプトを実行するにはどうすればよいですか?

大歓迎です。

+1

この(AJAX)がWebサーバーにx秒ごとに電話をかけるにはJavaScritpが必要です。 – PeeHaa

答えて

1

javascriptを使用する必要があります。

次をルックアップする必要があります:

  1. AJAXを使用してフォームを投稿する方法。
  2. window.setInterval

それは、このためのJSが容易になりますように私は、jQueryのを使用すると思います。

0

私はクッキーにあなたのデータを格納する、または(私はクッキーをお勧めしますが)AJAXを介してサーバに送信しますいずれかが30秒ごとに(setTimeoutを())いくつかのコードを実行するために、JSを使用してお勧めしたい

1

私はあなただけでは、この使用してPHPを行うことができるとは思わないが、あなたが必要なもののように聞こえる興味深いjQueryの機能があります:

データベースを使用するためにクッキーを使用しますが、おそらくあなたはそれを修正することができ

http://rikrikrik.com/jquery/autosave/

+0

これはデータベースを使用します:http://jetlogs.org/2007/11/11/auto-saving-with-jquery/ – davidjwest

0
function sendQuery(){ 
    AjaxArr = $('#formID *').serializeJSON(); 

    toAjax(AjaxArr,'yourPHPToSave.php'); 

    setTimeout('sendQuery',30000); 
} 

function toAjax(arr,ajaxAdr){ 
    JsHttpRequest.query( siteAdr+ajaxAdr+'?x=c'+Math.random(), AjaxArr, 
     function(result, errors) { 
      if(errors)alert(errors); 
      else{ 
       if(result['error'] && result['error']!='')alert(result['error']); 
       if(result['callback'] && result['callback']!='')eval(result['callback']); 
      } 
     } 
    ); 
} 

jQuery.fn.serializeJSON=function() { 
    var json = {}; 
    jQuery.map($(this).serializeArray(), function(n, i){ 
     json[n['name']] = n['value']; 
    }); 
    return json; 
} 

コールsendQueryyourPHPToSave.php

UPDATEでPOSTデータをretrive:あなたはJsHttpRequestライブラリhttp://www.phpclasses.org/package/3637-PHP-Process-regular-and-file-upload-AJAX-requests.htmlとjQuery JavaScriptを使用して

0

が必要になります。

var refreshId = setInterval(function() 
{ 
    //get your data here and make an ajax call to update your db table 

}, 10000); 

このコードは、すべてのために実行されますあなたのページで10秒。

1

次のコードでは、jQueryを使用して、毎秒store.phpというPHPファイルにデータを送信しています。

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.5.0/jquery.min.js" type="text/javascript"></script> 
<script type="text/javascript"> 
function callback() { 
    // make ajax request 
    $.ajax('store.php',{ 
     data:'<contains-the-data-to-store>', 
     success:function() { 

     } 
    }); 
} 
$(document).ready(function() { 
    setInterval("callback()", 1000); 
}); 
</script> 
0
<script type="text/javascript"> 
function func() 
{ 
// collect data like that 
//var your_data_array = {} 
// your_data_array.Ans1 = $('#someID').val(); 
    $.ajax({ 
      type: "POST", 
      url:"path/to/page/which/will/save_data.php", 
      data:your_data_array, 
      //dataType:'json', 

      beforeSend: function() 
      { 
      }, 
      success: function(resp) 
      { 
       $("#activity").html(resp); 
       /*$("#db").html(resp.db); 
       $("#time").html(resp.time);*/ 
      }, 
      complete: function() 
      { 
      }, 
      error: function(e) 
      { 
      alert('Error: ' + e); 
      } 
     }); 

    var t = setTimeout("func()",30000); 
} 
var t = setTimeout("func()",30000); 
</script> 

ごとに30秒後に立ちあげます、あなたのデータFUNC()関数に応じpreapare後にあなたの頭の部分にこれを追加します。

関連する問題