Yii2:自动保存表单导航到表单中的另一个选项卡

时间:2014-12-12 20:21:08

标签: javascript jquery forms yii2

我说我想在选择其他标签时提交每个标签内容(表单值)。这样,用户可以在标签之间导航,而无需重新加载整个表单。即使部分填充到数据库中,也会保存这些值

我认为这可以使用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>

1 个答案:

答案 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);  
        }
    });
    
            
  }
Html表单ID应为formID

<form id="formID" method="POST" action="autoSave.php">..

这是一个想法,当任何人点击任何标签时,将生成ajax调用以保存表单,你必须根据你的代码修改,因为你还没有提交任何代码,这就是为什么我做了一个通用的例子

希望这会有所帮助!