Jump to content

[Resolvido] Passagem de URL para javascript


t0ze
 Share

Recommended Posts

Bom dia,

Gostaria de saber da vossa experiencia para a seguinte situação:

O objectivo é implementar um sistema multi language e para "chamar" a linguagem actual, estou a utilizar uma variavel de sessao, que vai ler a um ARRAY.

A minha duvida agora é a mudança de lingua. Assim, o que estou a fazer é;

<script>
function change_to_en(lang){
 window.location.replace("http://google.com");
}

function change_to_pt(){
 //document.write("<?php $_SESSION['user_lang'] = 'pt';?>");
 //document.reload("http://google.com");
 window.location.replace("<?php echo $pageURL; ?>");
}
</script>
<div>
 <?php $pageURL = ""; $pageURL = "http://".$_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI'];  ?>
 Bem-vindo, <?php echo $_SESSION['name']." | "; echo "<a href='logout.php'>Sair</a><br>"; ?> <a href='#' onclick='change_to_pt()'><img style="width:16px; height:12px;" src="./files/img/pt-pt.png"></a>   <a href='#' onclick="change_to_en('<?php echo $pageURL."?lang=en"; ?>')"><img style="width:16px; height:12px;" src="./files/img/en.png"></a>
</div>

O Objectivo era que o utilizador ao clicar no mudar para EN ficasse na mesma página, mas esta refrescasse, de modo a eu poder ir à variavel _GET[lang] e dar o valor EN à variavel de sessao.

O meu problema é na função function change_to_en(lang) que não redireciona para lado nenhum.

Obrigado

Link to comment
Share on other sites

1 pergunta. Porque é que estás a usar js para esse trabalho?

"[Os jovens da actual geração]não lêem porque não envolve um telecomando que dê para mirar e atirar, não falam porque a trapalhice é rainha e o calão é rei" autor: thoga31

Life is a genetically transmitted disease, induced by sex, with death rate of 100%.

Link to comment
Share on other sites

Pois.

Só m estava a complicar, vi num exemplo na internet.

<div>
 <?php $pageURL = ""; $pageURL = "http://".$_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI'];  ?>
 Bem-vindo, <?php echo $_SESSION['name']." | ";
echo "<a href='logout.php'>Sair</a><br>"; ?>
 <a href='<?php echo $pageURL.'?lang=pt'; ?>' ><img style="width:16px; height:12px;" src="./files/img/pt-pt.png"></a>
 <a href='<?php echo $pageURL.'〈=en'; ?>'><img style="width:16px; height:12px;" src="./files/img/en.png"></a>
</div>

Agora aqui a minha dificuldade é em saber quando é que no parametro (lang) a adicionar a string do link (pageurl) é o primeiro ou outro (usar ?lang ou 〈)

Se eu tiver numa pagina /registry_edit.php?id_registry=1364 tem que adicionar o (〈)

Se eu tiver numa pagina ns/registry_list.php tem q adicionar o (?lang)

há maneira de controlar isto?

Link to comment
Share on other sites

Obrigado HappyHippyHippo, segui a tua dica e funcionou

Há maneira de evitar isto, é que de cada vez que o utilizador carrega na bandeira, vai acrescentar ao link.

/registry_list.php?lang=en〈=en〈=en〈=en

$pageURL = "";
$pageURL = "http://".$_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI'];
if (count($_GET) == 0)
 $pageURL.="?";
// a partir de agora será sempre
$pageURL . "〈";
Link to comment
Share on other sites

Ficou resolvido assim:

<div class="logInfo">
<?php
$pageURL = "";
$prefix = "";
if (count($_GET) == 0) {
 $prefix = "?";
}else{
 $prefix = "&";
}
$pageURL = "http://".$_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI'];
$pageURL = preg_replace('/(.*)(?|&)' . 'lang' . '=[^&]+?(&)(.*)/i', '$1$2$4', $pageURL . '&');
$pageURL = substr($pageURL, 0, -1);
$pageURL = $pageURL.$prefix;

?>
 Bem-vindo, <?php echo $_SESSION['name']." | "; echo "<a href='logout.php'>Sair</a><br>"; ?> <a href='<?php echo $pageURL."lang=pt"; ?>' ><img style="width:16px; height:12px;" src="./files/img/pt-pt.png"></a>   <a href='<?php echo $pageURL."lang=en"; ?>'><img style="width:16px; height:12px;" src="./files/img/en.png"></a>

</div>

referencia: http://www.addedbytes.com/blog/code/php-querystring-functions/

Creio que o titulo do post acabou por ficar desadequado, faria mais sentido se fosse "Remover variável da query string", deixo ao vosso critério.

Obrigado pela ajuda.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.