HTML 使用 select 标签和 php 更改站点

HTML change site using select tag and php

我想做一个网站,我想做一个 select 标签,您可以在其中更改语言。我的意思是会有一些您可以更改的选项。例如,默认站点语言是英语,但您想将其更改为德语,您可以从列表中 select 德语。之后您单击“保存”按钮,页面会将您重定向到 indexgermany.html 我试图制作一个代码,但我是 php 的新手,所以我不知道该怎么做。顺便说一句,这是我的代码:

<?php

if(isset($_POST['submit'])) {
if(isset($_POST['option']))
{
    if($_POST['option'] == Deutsch - DE) {
    header('Location: indexgerman.php');
    }
}
}

?>
<form  method="POST" action="changelang.php">
<select select name="languages" id="langs">
<option for="english" name="english">English - EN</option>
<option for="germany" name="germany">Deutsch - DE</option>
</select><br>
 <input type="submit" class="langsave" name="submit" value="SAVE">
</form>

我猜你的脚本不会重定向你,如果你改变了“lang”。

如果您使用以下代码,它应该可以工作:

<?php
    if(isset($_POST['submit'])) {
        if(isset($_POST['option']))
        {
            if($_POST['option'] == 'Deutsch - DE') {
            header('Location: indexgerman.php');
            }
        }
    }
?>

您忘记将您的选项名称用引号引起来。 这是必需的,因为您要比较 2 个字符串。

您缺少 HTML 中的值并且 $_POST 需要等于字符串,否则它只是未定义的值。

编辑:

另外$_POST['option']不存在,我把select标签名重命名为options.

<?php
if(isset($_POST['submit'])) {
  if(isset($_POST['option'])){
    if($_POST['option'] == "DE") {
       header('Location: indexgerman.php');
    }
  }
}
?>

<form  method="POST" action="changelang.php">
  <select select name="options" id="langs">
    <option for="english" name="english" value="EN">English - EN</option>
    <option for="germany" name="germany" value="DE">Deutsch - DE</option>
  </select>
  <input type="submit" class="langsave" name="submit" value="SAVE">
</form>
<?php

if(isset($_POST['submit'])) {
    $selected_lang = $_POST['languages'];
    if($selected_lang == "Deutsch - DE") {
        header('Location: indexgerman.php');
    }else{
        header('Location: indexenglish.php');
    }
}    
?>

第一件事是当你从 Select 标签中获得选项时,你将名称与 select 标签关联而不是与 option 标签关联并且你在比较时错过了 ""字符串值(Deutsch - DE)。