从表单保存和加载数据而不提交
Saving and loading data from a form without submitting
我的任务是为一个相当大的表单编写一个加载/保存函数。 这样,用户可以保存他们的工作,然后稍后返回并加载它并继续工作。
我决定使用服务器端存储并将数据本地保存到 mysql 数据库。 我想出了"saveForm",它只是将 _POST 美元作为长字符串存储到列中。
我不知道如何编写"加载表单"。
我有:
<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;
},
});
});
加载表单.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);
}
我觉得在检索表单时传递用户/会话唯一的唯一令牌或随机数很重要,这样其他人就无法请求 ID 并获取该用户的个人信息。只是一个想法。
当页面加载($(document).ready())时,将执行loadForm函数:将AJAX请求发送到服务器,它使用数据进行响应以填写表单。在这种情况下,服务器必须查询数据库并返回请求的数据。您可以在不提交任何内容的情况下执行此操作。
下面是一个示例:
客户端:
$(document).ready (loadForm);
function loadForm () {
$.ajax ({
url: '/loadForm.php' ,
success: function (data) {
$('#firstField').val (data.firstField);
$('#secondField').val (data.secondField);
}
});
服务端:查询数据库并回显数据
您可以在执行 php 代码期间加载保存的数据(如果有),并在表单中填写这些数据字段。这里的Ajax可能不是必需的。
<?php //yourform.php (PHP & PDO)
// connect
select * from `saveQAForm` where user_id = $_COOKIE['user_id']
?><input name="field1" value="<?=(isset($data['field1'])?$data['field1']:""?>" />
相关文章:
- 在php中提交数据时,如果某些值为null,而某些值为非null,如何进行查询
- jQuery-输入时不提交数据
- 在提交数据之前更改选择表单元素中的值
- CORS问题,同时提交数据到谷歌表单的角度
- 表单未通过POST或GET提交数据
- 我刚刚开始使用 MEAN 堆栈.我试图将我的表单提交数据存储到 mongo 数据库,但我无法这样做
- AJAX 以 JSON 格式向 PHP 提交数据
- Javascript 表单提交数据在提交到PayPal时不会更改
- AJAX 不会提交数据
- 表单不提交数据
- 如何在实际提交之前使用标准提交事件和jquery删除/增强/更改表单提交数据
- 从令牌输入.js提交数据
- 如何在按下回车键(jQuery)时提交数据
- 我如何使用javascript进行验证,然后使用php提交数据
- 提交数据时刷新页面
- 添加行&通过ajax提交数据
- 使用GET变量自动提交数据表搜索
- 引导向导如何在保存或提交数据后将默认活动选项卡(第一个选项卡)覆盖到上一个活动选项卡
- 在向数据库提交数据之前执行onsubmit
- 向服务器提交数据后关闭弹出菜单