common.jsfunction goUrl(lang){...// $_SESSION['language']=lang 这句代码在js里要怎么写?...}
回复讨论(解决方案)
js和php的交互最好用ajax来完成
一般是php里嵌js,哪里是js里写php呀,要服务器支持的。
function goUrl(lang){
...
<?php $_SESSION['language']='lang'; ?>
...
}
js里要跟PHP关联,一般都是要用到AJAX请求,如果是在JS加载时就得到(取)session的值,可以在js 代码块里写 <?php echo $_SESSION['language']; ?> 如果是想在加载页面时设置session,这个跟js就没关系了,可以直接<?php $_SESSION['language'];?>
main.inc.php<?php...$language = 'tc';if (isset($_G['lang']) && in_array($_G['lang'], array('tc', 'sc'))) { $language = $_G['lang']; $_SESSION['language'] = $language;} else if (isset($_SESSION['language']) && !empty($_SESSION['language'])) { $language = $_SESSION['language'];} else { $_SESSION['language'] = $language;}...?>index.php<?phprequire_once dirname(__FILE__) . '/includes/main.inc.php'; $tpl->display('index.html');?>index.html[code=php]
点击 index.html “繁” 切换语言 (繁)
我在调用 goUrl() 的同时改变 $_SESSION['language']
所以我就想在js里添加php代码,如果像下面那样又会报错,求解决方法
function goUrl(lang){
...
<?php $_SESSION['language']='lang'; ?>
...
}
1、session 变量存储于服务端,客户端不能主动修改
2、你在 goUrl() 中有 location.href = urls[0]+"?"+query+window.location.hash; 跳转
所以你应在 urls[0] 指向的程序文件中做 session 变量设置
1、session 变量存储于服务端,客户端不能主动修改
2、你在 goUrl() 中有 location.href = urls[0]+"?"+query+window.location.hash; 跳转
所以你应在 urls[0] 指向的程序文件中做 session 变量设置
跳转后也是到index.php ->index.html 执行的goUrl()时在原本的链接上添加 ?lang=XX 来改变语言
function goUrl(lang){
var url = document.location.href;
var query = window.location.search.substring(1);
var urls = url.replace(window.location.hash, '').split("?");
var vars = query.split("&");
var query = "";
for (var i=0;i
if (pair[0] != "lang" && pair[0] != "") {
query = query + pair[0] + "=" + pair[1] + "&";
}
}
query = query + "lang=" + lang;
location.href = urls[0]+"?"+query+window.location.hash;
}
我想创建goUrl.php 来代替上面 在php里怎么实现这段js的功能
改变语言后,页面需要刷新,你原来的写法并不需要改变
你的 goUrl.php 总还是要像 index.php 那样输出页面内容的。不显得累赘吗?