【问题标题】:HTML change site using select tag and php使用选择标签和 php 的 HTML 更改站点
【发布时间】:2021-01-02 09:12:51
【问题描述】:

我尝试制作一个网站,我想制作一个选择标签,您可以在其中更改您的语言。我的意思是会有一些你可以改变的选项。例如,默认站点语言是英语,但您想将其更改为德语,您可以从列表中选择德语。之后,您单击“保存”按钮,页面会将您重定向到 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>

【问题讨论】:

  • 看来您也是 html 新手。 $_POST 变量的键名来自选择框的名称,您需要在该键名处为 $_POST 变量的值的选项提供值属性。
  • 你的选项应该有值属性
  • 给定的代码有什么问题?有什么不工作?

标签: php html css select option


【解决方案1】:

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

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

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

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

【讨论】:

    【解决方案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>
    

    【讨论】:

      【解决方案3】:
      <?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标签关联起来,你错过了"",同时与字符串值(德意志-德)比较。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2014-08-18
        • 1970-01-01
        • 2017-09-07
        • 1970-01-01
        • 2013-03-24
        • 1970-01-01
        • 2016-02-18
        相关资源
        最近更新 更多