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)。
我想做一个网站,我想做一个 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)。