我有一个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();
答案 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();
});
但是,有没有更好的方法呢?