有没有办法在调用window.location命令后调用(jquery动作/写一个html文本)到新页面的div?
我试图制作一个ajax表单提交,用户将在提交时重定向到新页面,
并在该新页面中显示隐藏的div,其中包含文本
目前这是我的代码
的script.js
$.ajax({
url:url,
type:'POST',
data:datastr,
success:function(result){
if(result=="duplicate"){
$("#status").attr('class', 'span12 alert alert-error');
$("#status").show();
$("#status").html("<h4><center>Duplicate Username</center></h4>");
$("#dept_name").closest(".control-group").attr('class', 'control-group');
$("#username").closest(".control-group").attr('class', 'control-group error');
$("#password").closest(".control-group").attr('class', 'control-group');
$("#username").focus();
}
else{
$("#dept_name").closest(".control-group").attr('class', 'control-group');
$("#username").closest(".control-group").attr('class', 'control-group');
$("#password").closest(".control-group").attr('class', 'control-group');
window.location = base + 'admin/departments/edit_dept/' + result;
}
}
});
我想让下面的代码块在window.location正在进行的页面上工作
$("#status").attr('class', 'span12 alert alert-error');
$("#status").show();
$("#status").html("<h4><center>Successfully added Department</center></h4>");
有可能吗?
感谢
答案 0 :(得分:1)
您可以使用CI会话闪存数据。
http://ellislab.com/codeigniter/user-guide/libraries/sessions.html
在触发window.location
之前,请在flashdata
中设置消息。在登陆/重定向到的页面上,检查flashdata
是否有值(成功/失败)。如果是,则显示(或触发js方法显示)消息。
答案 1 :(得分:1)
您可以使用window.location添加参数,例如:
window.location = base + 'admin/departments/edit_dept/' + result + '?showMessage=12'
然后在下一页上,有一个jquery脚本,用于查找该参数并显示该消息。请参阅此question。
或者您可以在服务器上执行此操作。但是使用jquery它也适用于静态HTML。
答案 2 :(得分:0)
这是一个补丁,可能需要一些调整。
window.location = base + 'admin/departments/edit_dept/' + result+'/err'; //changed to catchup with the view part
在控制器中:
<?php
if($this->uri->segment(4) == "err"){
$data['err'] = true; #will reflect that we need to show the js in the view
$this->load->view('view', $data);
}
?>
在视图部分:
<?php if(isset($err)){ ?>
<script type="text/javascript">
$("#status").attr('class', 'span12 alert alert-error');
$("#status").show();
$("#status").html("<h4><center>Successfully added Department</center></h4>");
</script>
<?php } ?>