我有一个包含100个问题的页面。
当用户提交表单时,数据会保存到表格中(在下一页上)。
我想要做的是在提交表单之前将用户选择的答案保存在表格中每30秒一次。
有人可以指导我走向何方?
如何每30秒运行一次脚本?
非常感谢帮助。
答案 0 :(得分:1)
您需要使用javascript。
您需要查看以下内容:
我使用jQuery,因为它使JS变得容易。
答案 1 :(得分:1)
我不认为你可以单独使用PHP来做到这一点,但是有一个有趣的jQuery函数听起来像你需要的那样:
http://rikrikrik.com/jquery/autosave/
使用cookies但是你可以修改它以使用数据库吗?
答案 2 :(得分: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>
答案 3 :(得分:0)
我建议使用JS每隔30秒运行一些代码(setTimeout()),将数据存储在cookie中,或者通过ajax将其发送到服务器(尽管我会推荐cookie)
答案 4 :(得分: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;
}
致电sendQuery
并在yourPHPToSave.php
更新:您需要JsonHttpRequest库http://www.phpclasses.org/package/3637-PHP-Process-regular-and-file-upload-AJAX-requests.html和jQuery
答案 5 :(得分:0)
使用Javascript:
var refreshId = setInterval(function()
{
//get your data here and make an ajax call to update your db table
}, 10000);
此代码将在您的页面上每10秒运行一次。
答案 6 :(得分: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>
根据你的数据fapt()函数在preapare之后将它添加到你的头部。每30秒就会激活一次。