我说我想在选择其他标签时提交每个标签内容(表单值)。这样,用户可以在标签之间导航,而无需重新加载整个表单。即使部分填充到数据库中,也会保存这些值
我认为这可以使用jquery或javascript来完成,例如点击选项卡会模仿同时点击“保存”按钮。
我也试过这段代码,但它没有用?选项卡的ID为#ui-id-3,保存按钮的ID为#save1。
<script>
$('#ui-id-3').click(function(){
$('#save1').click();
return false;
});
</script>
我在这里做错了什么?
建议修改:
<script src="//ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script>
$(function() {
$("#ui-id-3").click(function(){
autoSave();
return false;
});
});
function autoSave(){
var formData = $("#w0").serialize();
$.ajax({
type:"POST",
url:"/hospitalerp/web/index.php?r=daily-ward-entry%2Fcreate",
data:formData,//only input
success: function(response){
$( "#recordID" ).val( response);
}
});
}
</script>
答案 0 :(得分:2)
这是一个简单的解决方案,但您必须根据需要进行修改
第一步:
使用for ID字段创建一个隐藏字段,我们将数据库记录ID存储在其中,您可以name
/ id
输入为recordID,以便我们可以在我们的jQuery代码中引用它
<input type="hidden" name="recordID" id="recordID" value="0" />
第二步:
创建一个服务器页面,它将为数据库插入/更新服务器,你可以称之为 autoSave.php 这个页面将收到完整的表单,如果recordID <=0
那么它将插入到db并返回新插入的ID,否则它将更新表where Id = recordID
第3步:
Jquery Code,它会在Tab Click上调用autoSavePage。
$(function() {
$(".tabs").click(function(){
autoSave();
return false;
});
});
function autoSave(){
var formData = $("#formID").serialize();
$.ajax({
type:"POST",
url:"autoSave.php",
data:formData,//only input
success: function(response){
$( "#recordID" ).val( response);
}
});
}
<form id="formID" method="POST" action="autoSave.php">..
这是一个想法,当任何人点击任何标签时,将生成ajax调用以保存表单,你必须根据你的代码修改,因为你还没有提交任何代码,这就是为什么我做了一个通用的例子
希望这会有所帮助!