使用select标记和php的HTML更改站点

问题描述

我尝试建立一个网站,并且希望创建一个select标记,您可以在其中更改语言。我的意思是,有些选项可以更改。例如,认的网站语言是英语,但是您想要将其更改为德语,则可以从列表中选择德语。之后,单击“保存”按钮,页面会将您重定向到indexgermany.html 我试图编写代码,但是我是PHP新手,所以我不知道该怎么做。顺便说一下,这是我的代码

var opt_1 = document.getElementById("slider-a1");
opt_1.oninput = function() {
  document.getElementById("a1").value = opt_1.value;}
<?PHP

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

?>

解决方法

如果您更改了“语言”,我会猜测您的脚本不会重定向您。

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

<?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标记中获得选项时,U放置了与select标记相关联的名称,而不是与option标记相关联,并且在与字符串比较时U错过了""值(Deutsch-DE)。