Php 需要在服务器端刷新URL-如何刷新?
我有一个翻译插件,利用谷歌的免费网站翻译工具。我不使用他们的API,但只提供一些创造性的选项,说明如何在网站上使用该工具 工作原理:用户单击触发事件的标志或下拉列表,然后在翻译后将Php 需要在服务器端刷新URL-如何刷新?,php,jquery,redirect,Php,Jquery,Redirect,我有一个翻译插件,利用谷歌的免费网站翻译工具。我不使用他们的API,但只提供一些创造性的选项,说明如何在网站上使用该工具 工作原理:用户单击触发事件的标志或下拉列表,然后在翻译后将?lang变量添加到url的末尾。用户可以通过修改地址栏中的?langurl变量直接更改url 这很棘手,尤其是因为现在我正在使用客户端功能来完成这项工作。我正在使用location.href刷新页面,这也会在导航到新页面后将lang变量添加回url 我的问题是,当用户单击指向新页面的链接时,会发生以下情况: 用户单击
?lang
变量添加到url的末尾。用户可以通过修改地址栏中的?lang
url变量直接更改url
这很棘手,尤其是因为现在我正在使用客户端功能来完成这项工作。我正在使用location.href
刷新页面,这也会在导航到新页面后将lang
变量添加回url
我的问题是,当用户单击指向新页面的链接时,会发生以下情况:
lang
变量jQuery
第二次启动并刷新页面以添加url变量PHP
。如果有人能给我举个简单的例子,我需要一些关于jQuery
和PHP
如何交互的指导
下面是我现在为一个单一语言案例编写的jQuery
代码,当用户直接在浏览器中更改url时
<script type="text/javascript">
jQuery(document).ready(function($) {
$.cookie("language_name", "Afrikaans");
$.cookie("flag_url", "<?php echo home_url(); ?>/wp-content/plugins/google-language-translator-premium/images/flags24/Afrikaans.png");
var language_name = $.cookie("language_name");
var lang = GetURLParameter('lang');
var googtrans = $.cookie("googtrans");
var lang_prefix = $('a.af').attr("class").split(" ")[2];
if (lang == null && language_name == 'Afrikaans') {location.href = document.location.href.split("?")[0] + "?lang=" + lang_prefix;}
function GetURLParameter(sParam) {
var sPageURL = window.location.search.substring(1);
var sURLVariables = sPageURL.split('&');
for (var i = 0; i < sURLVariables.length; i++) {
var sParameterName = sURLVariables[i].split('=');
if (sParameterName[0] == sParam) {
return sParameterName[1];
}
}
}
if (googtrans != '/en/af') {
doGoogleLanguageTranslator('en|af');
}
});
</script>
jQuery(文档).ready(函数($){
$.cookie(“语言名称”、“南非荷兰语”);
$.cookie(“flag_url”,“wp content/plugins/google language translator premium/images/flags24/Afrikaans.png”);
var language_name=$.cookie(“language_name”);
var lang=GetURLParameter('lang');
var googtrans=$.cookie(“googtrans”);
var lang_prefix=$('a.af').attr(“类”).split(“”[2];
如果(lang==null&&language\u name=='Afrikaans'){location.href=document.location.href.split(“?”[0]+”?lang=“+lang\u prefix;”
函数GetURLParameter(sParam){
var sPageURL=window.location.search.substring(1);
var sURLVariables=sPageURL.split('&');
对于(变量i=0;i
您可以使用JavaScript将lang
参数附加到页面加载的每个链接上。您需要逻辑来忽略外部链接,并根据查询字符串的预先存在添加?lang
或&lang
。当然,除非在当前URL中已经指定了lang,否则它不会做任何事情
您可以将现有代码修改为以下内容:
...
if (lang) {
jQuery("a").each(function () {
// Logic here
});
}
else if (language_name == 'Afrikaans') {
location.href = document.location.href.split("?")[0] + "?lang=" + lang_prefix;
}
...
查看如何附加查询字符串参数的示例。
使用Ajax,这样您将只刷新站点的一部分,而不是整个页面,并且仍然可以维护所需的lang变量want@eddwindpaz我喜欢这个主意……你能告诉我怎么做吗?即使是一般的例子也会把我推向正确的方向。转到jquery文档站点部分,键入$.get或$.post并查看演示。这里有详细的解释…@RobMyrick如果你想使用jquery和ajax,请检查一下
<?php
if (empty($_GET['lang'])) {
header('Location: $_SERVER['REQUEST_URI'].'?'.$_SERVER['QUERY_STRING'].'&lang=en');
die;
}
?>