我如何发布变量?

时间:2012-06-11 13:10:01

标签: html var

我会重新解释我的情况,因为我认为我最初的故事不够明确。 我在Visual Studio中编写一个网页,它在C#中,但我的实际问题是关于HTML部分。

我已经成功实施了本地化。唯一的问题是我只能通过硬编码来改变语言(例如我可以硬编码语言=“EN”,我的网站将是英文)

现在,当然我不想硬编码,我希望人们选择语言。所以我需要一个按钮,可以使用另一种语言重新加载同一页面。

重新加载后我只需要一件事,那就是字符串“en”或“nl”(取决于所选语言)。所以我的按钮将我发送到index.aspx,但我的新页面不知道我刚刚按下的按钮的值。

如何传递变量?

2 个答案:

答案 0 :(得分:1)

你可以通过几种不同的方式做到这一点。您可以将整个语言站点放在子目录中,这样就像:

www.example.com/english/index.php

或者另一种方式是像你说的那样使用get,并且每个页面只存储英语和荷兰语,并且只在url中显示语言(默认可以是荷兰语)。所以这样调用你的页面:(假设你使用php)

英语:

www.example.com/index.php?lan=english

对于荷兰语:(没有定义语言,荷兰语是默认语言)

www.example.com/index.php

在您的页面中(您希望为每个能够用英语和荷兰语阅读的页面执行此操作:

<?php
$lan = 'dutch';
if(isset($_GET['lan']))
     $lan = $_GET['lan'];

if($lan == 'english')
{
     ... Your page in english ...
}
else
{
     ... Default Language ...
}
?>

答案 1 :(得分:0)

好,

他们关于这个问题的方法是使用a来列出你想要包含的所有语言:

<form method="get" action="Index.aspx">
<label for="language">Select you language here</label>
<select id="language">
<option value="english"English</option>
<option value="french">French</option>
. 
.
.
</select>
<input type="submit" value="submit">
</form>

然后在您的aspx文件中进行一些处理

- 编辑 -

如果您在表单中使用method =“get”,则所选变量将以这种方式附加到网址:

index.aspx?language=english /* for example */
在您的aspx页面中,您可以运行一些javascript:

<script type='text/javascript'>
//<![CDATA[
//  Parse Query String
    var queryString = new Object;
    var qstr=window.location.search.substring(1);
    var params=qstr.split('&');
    for (var i=0; i<params.length; i++) {
      var pair=params[i].split('=');
      queryString[pair[0]]=pair[1];
    }
   //]]> 
</script>
<script type="text/javascript">
   var language = queryString['language'];
   if (language== "english") {
        /* Do some processing */
    }
    else { do domething else }
</script>

如果您将javascript放在头部,它将在页面加载时运行。在处理部分中访问您的语言文件。