私は100の質問のページがあります。PHP自動保存コード
ユーザーがフォームを送信すると、データは次のページの表に保存されます。
私がしたいのは、フォームを送信する前に30秒ごとにユーザーの選択した回答を表に保存することです。
誰かがどんな方向に向かうのか教えてください。
30秒ごとにスクリプトを実行するにはどうすればよいですか?
大歓迎です。
私は100の質問のページがあります。PHP自動保存コード
ユーザーがフォームを送信すると、データは次のページの表に保存されます。
私がしたいのは、フォームを送信する前に30秒ごとにユーザーの選択した回答を表に保存することです。
誰かがどんな方向に向かうのか教えてください。
30秒ごとにスクリプトを実行するにはどうすればよいですか?
大歓迎です。
javascriptを使用する必要があります。
次をルックアップする必要があります:
それは、このためのJSが容易になりますように私は、jQueryのを使用すると思います。
私はクッキーにあなたのデータを格納する、または(私はクッキーをお勧めしますが)AJAXを介してサーバに送信しますいずれかが30秒ごとに(setTimeoutを())いくつかのコードを実行するために、JSを使用してお勧めしたい
私はあなただけでは、この使用してPHPを行うことができるとは思わないが、あなたが必要なもののように聞こえる興味深いjQueryの機能があります:
データベースを使用するためにクッキーを使用しますが、おそらくあなたはそれを修正することができhttp://rikrikrik.com/jquery/autosave/
?
これはデータベースを使用します:http://jetlogs.org/2007/11/11/auto-saving-with-jquery/ – davidjwest
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;
}
コールsendQuery
とyourPHPToSave.php
UPDATEでPOSTデータをretrive:あなたはJsHttpRequestライブラリhttp://www.phpclasses.org/package/3637-PHP-Process-regular-and-file-upload-AJAX-requests.htmlとjQuery JavaScriptを使用して
が必要になります。
var refreshId = setInterval(function()
{
//get your data here and make an ajax call to update your db table
}, 10000);
このコードは、すべてのために実行されますあなたのページで10秒。
次のコードでは、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>
<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後にあなたの頭の部分にこれを追加します。
この(AJAX)がWebサーバーにx秒ごとに電話をかけるにはJavaScritpが必要です。 – PeeHaa