先看下图片问题是选择语言后,需要刷新栏目下的所有子栏目我运用了select 的 onchanage 事件代码如下:<script>
function changeLan()
{
var selectVal=document.topForm.select1.options[document.topForm.select1.selectedIndex].value;
//alert(selectVal);
window.location.href="change_language.php?lan="+selectVal;
window.parent.location.reload(); }
</script>change_language.php 页面代码很简单,只是为了保存session代码如下:<?
session_start();
$lan=$_REQUEST['lan'];
//echo $lan;$_SESSION["lan"]=$lan;?>
现在的问题是:
刷新上级页面后 ,session 值没有了
请问是什么原因呢?
请高手们不吝赐教啊 ,新手!
js那边不要用 window.parent.location.reload(); 吧 涉及到线程的问题。
你可以把这句话去掉 到change_language.php那边写一句跳转的回显示页面的话吧session_start();
$_SESSION['selectVal']=$_GET['lan'];
header("Location:show.php");应该可以达到你要的效果 希望对你有所帮助!
这个应该不会刷新session,你换其他session变量试试,例如弄个计数器
我要刷新多个页面啊,所以change_language.php 里面。不能只写一个location 的 !
我换个说法吧:现在就是我选择一个语言,怎么实现如上图所示的左边导航里面的每个页面都能接收到选中的怨言呢? 这样说法,大家可能更容易接受啊,帮帮我啊!!!!
回楼上:左侧文件没有引用change_language.php ;这个文件只是保存session的啊!
session_Start() 肯定是会开启的!
放到 change_language.php 中试试可能的原因是
window.location.href="change_language.php?lan="+selectVal;
刷新了当前框架页,但他并不等待页面的返回。如果等待返回的话,下一句也就无效了
window.parent.location.reload();
刷新整个框架。可以认为此句与上句是并行进行的。页面执行时,可能上句的处理还未完成你每个页面都是用了 session 吗?
论坛的大神块现身啊 ,帮帮我这个菜鸟啊!
我试试看吧 session肯定开启的呢!呵呵!
的确你这二句JS是冲突的,你在 change_language.php 写上 header("location: index.php");
2 确定一下是否有更换二域名 例如 en.xxx.com cn.xxx.com 域名不同,没法存的。
3 确定session 值存进去了,折腾个其它的session 看看,是否有保存.
4 good luck~