我的任务是为相当大的表单编写加载/保存函数。这样,用户可以保存他们的工作,然后返回并加载它并继续工作。
我决定使用服务器端存储并将数据本地保存到 mysql 数据库。我想出了“saveForm”,它只是将 $_POST 作为长字符串存储到列中。
我不知道如何编写“loadForm”。
我有:
<form id="qa" .. ">
<button id="saveForm" type="submit"...">
<button id="loadForm" type="submit"...">
<input type="hidden" id="unique_user_id"...">
</form>
<javascript>
$('#saveForm').bind({
click: function() {
$.ajax({
type: 'post',
url: "/saveForm.php",
data: $("#qa").serialize(),
success: function() {
alert("form was submitted");
},
});
return false;
},
});
<javascript>
saveForm.php: (PHP & PDO)
// connect
insert into `saveQAForm` ($_POST['id'],var_export($_POST));
最佳答案
做这样的事情:
$(document).ready(function() {
$('#loadForm').bind({
click: function() {
$.ajax({
type: 'post',
url: "/loadForm.php",
data: 'id=123&token=8ash198hkuhd98yhk',
success: function(data) {
$('#first_name').val = data.first_name;
$('#last_name').val = data.last_name;
}
});
return false;
},
});
});
loadForm.php
// Get values
$id = $_POST['id'];
$token = $_POST['token'];
// Check hash value here. Use your preferred
// database method ensuring POST values are filtered first. Then:
if($token == $row['token'])
{
// Make DB query to get form data and return it as JSON
return json_encode($row);
}
我认为在检索表单时传递用户/ session 独有的唯一 token 或随机数非常重要,这样其他人就无法请求 ID 并获取该用户的个人信息。只是一个想法。
关于php - 在不提交的情况下保存和加载表单中的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10619254/