52,797
社区成员
发帖
与我相关
我的任务
分享
<form method="post" action="x.html" name="frmPOST">
标题:<input type="text" name="title" /><br />
类型:<select name="type"><option value="">请选择...</option><option value="1">AJAX</option><option value="2">C#</option><option value="3">JAVA</option></select><br />
内容:<textarea name="content" cols="60" rows="5"></textarea><br />
<input type="submit" value="发表" /> <input type="button" value="存为草稿" onclick="save(this)" />
</form>
<script type="text/javascript">
function rep(v) { //替换操作,将"替换为实体",防止json格式错误
return v.replae(/"/g, '"');
}
function save(btn) {//保存草稿代码
var f = btn.form, r = '';
if (f.title.value != '') r = ',"title":"' + rep(f.title.value) + '"';
if (f.type.value != '') r = ',"type":"' + rep(f.type.value) + '"';
if (f.content.value != '') r = ',"content":"' + rep(f.content.value) + '"';
if (r != '') //有输入内容,发送ajax保存,纯ajax写法比较多内容,本示例使用jquery.ajax来实现
$.ajax({
url: '写数据库的URL地址'
, type: 'POST'
, dataType: 'JSON'
, data: 'url:' + encodeURIComponent(location.href) + '&data=' + encodeURIComponent('{' + r.substring(1) + '}')//////////注意这里,发送了2个键值对,url和data
, success: function (data) {//保存成功
}
, error: function (xhr) { alert('保存失败,服务器返回信息\n' + xhr.responseText); } //发生错误
});
}
function initForm() { //初始化表单
$.ajax({
url: '读数据库的URL地址'//负责从传递的url参数中读取数据库存储的data然后输出
, type: 'POST'
, dataType: 'JSON'
, data: 'url=' + encodeURIComponent(location.href)
, success: function (data) { //由于保存的是json格式的内容,所以指定dataType为json时jquery会自动将json格式的字符串转为json对象
var f = document.frmPOST; //获取表单
for (var key in data)
if (f[key]) f[key].value = data[key];//表单中存在名称和键一样的输入项,设置value值
}
, error: function (xhr) { alert('保存失败,服务器返回信息\n' + xhr.responseText); } //发生错误
});
}
window.onload = initForm;//onload中发送ajax请求,直接调用initForm()也行,但是这句代码一定要在form表单后面
</script>