如何在显示后刷新表单上加载的数据?

时间:2011-09-21 05:49:38

标签: php jquery ajax

我有一个div,其中,它显示数据,旁边是一个编辑按钮..如果单击编辑按钮,它会隐藏div并显示一个不同的div,其中包含输入表单,允许用户更新数据..现在的问题是,当用户提交表单时,我的脚本更新数据并隐藏此输入表单并再次显示前面的数据显示,显示的数据未更新....我现在的问题是,,如何在脚本show()之后再显示更新后的数据呢?

这是我的jquery ajax代码

$(function(){
   $('#profileinfoedit').click(function(){
       $('#profileinfomain').hide();
       $('#profileinfoajax').show();

   $('form#pdetails').submit(function(){
      var cvid = $('#cvid').val();
      var resumetitle = $('#resumetitle').val();
      var name = $('#name').val();
      var dob = $('#dob').val();
      var gender = $('input[name=gender]:checked').val();

      $.ajax({
          type: "POST",
          url: 'classes/ajax.personalupdate.php',
          data: $("form#pdetails").serialize(),
          success: function(data){
            alert(data);
            $('#profileinfoajax').hide();
            $('#profileinfomain').show();
          }

      });
      return false;
   });

   });
});

$('#datepicker').datepicker();

2 个答案:

答案 0 :(得分:1)

所以location.reload只是刷新页面,你发现这是一个快速而又脏的修复。

如果您想在没有页面刷新的情况下执行此操作,则必须从ajax.personalupdate.php接收的数据中仅为'profileinfomain'元素重新生成html。我认为你只想在“成功”上做到这一点。

一种方法是让成功数据包含重新生成'profileinfomain'元素html所需的html。所以也许让php返回data.profileinfomain_html,然后:

$('#profileinfomain').html(data.profileinfomain_html);

将替换profileinfomain元素的内部内容。

如果您正在某种框架中工作,请将profileinfomain内部html内容包含在其中,这样您只需在一个地方维护其html。

答案 1 :(得分:0)

能够通过

对其进行排序
    $('#profileinfomain').show('normal',function(){
       location.reload();
    });

但是,有没有更好的方法呢?