2016-09-19 85 views
-2

我有这样的代码:如果语句不显示?

<?php 
$filterUrl = $_SERVER['HTTP_HOST']; 
?> 
<select class="jsFilter" name="language"> 
    <option value>Sprache</option> 
    <?php if (!$filterUrl == "www.domain.de"){?><option value="de" <?php if(isset($_GET['language']) && $_GET['language']=='de'){echo "selected";}?>>Deutsch</option><?php } ?> 
    <?php if (!$filterUrl == "www.domain.com"){?><option value="en" <?php if(isset($_GET['language']) && $_GET['language']=='en'){echo "selected";}?>>English</option><?php } ?> 
    <?php if (!$filterUrl == "www.domain.fr"){?><option value="fr" <?php if(isset($_GET['language']) && $_GET['language']=='fr'){echo "selected";}?>>Français</option><?php } ?> 
    <?php if (!$filterUrl == "www.domain.nl"){?><option value="nl" <?php if(isset($_GET['language']) && $_GET['language']=='nl'){echo "selected";}?>>Nederlands</option><?php } ?> 
</select> 

我不知道为什么不显示所有选项?

我希望你们能帮助我。

+0

什么是'回声$ filterUrl的输出;'?检查并告诉 –

+0

如果echo $ filterUrl;'select上面有什么? –

+0

尝试回显'$ filterUrl' – Panda

回答

1

你可以试试这个代码:

<?php 
$filterUrl = $_SERVER['HTTP_HOST']; 
?> 
<select class="jsFilter" name="language"> 
    <option value>Sprache</option> 
    <?php if ($filterUrl != "www.domain.de"){?><option value="de" <?php if(isset($_GET['language']) && $_GET['language']=='de'){echo "selected";}?>>Deutsch</option><?php } ?> 
    <?php if ($filterUrl != "www.domain.com"){?><option value="en" <?php if(isset($_GET['language']) && $_GET['language']=='en'){echo "selected";}?>>English</option><?php } ?> 
    <?php if ($filterUrl != "www.domain.fr"){?><option value="fr" <?php if(isset($_GET['language']) && $_GET['language']=='fr'){echo "selected";}?>>Français</option><?php } ?> 
    <?php if ($filterUrl != "www.domain.nl"){?><option value="nl" <?php if(isset($_GET['language']) && $_GET['language']=='nl'){echo "selected";}?>>Nederlands</option><?php } ?> 
</select> 
+0

工作。谢谢。 – fr3d

0
<?php 
    $filterUrl = $_SERVER['HTTP_HOST']; 
    $language = $_GET['language']; 
?> 
<select class="jsFilter" name="language"> 
    <option value>Sprache</option> 
    <option value="de" <?php if(isset($language) && $language=='de'){echo "selected";}?>>Deutsch</option> 
    <option value="en" <?php if(isset($language) && $language=='en'){echo "selected";}?>>English</option> 
    <option value="fr" <?php if(isset($language) && $language=='fr'){echo "selected";}?>>Français</option> 
    <option value="nl" <?php if(isset($language) && $language=='nl'){echo "selected";}?>>Nederlands</option> 
</select> 
+0

你可以通过把'$ _GET ['language']'放在它自己的变量 –

+0

中来缩短这个。是的,这也是可以的。 –

+0

我会尝试,但一些类型的语法错误。 – fr3d

0

你能不能,也许,尝试这样的:

<?php 
     $filterUrl = $_SERVER['HTTP_HOST']; 
     $options = ""; 
     $language = isset($_GET['language']) ? $_GET['language'] : "de"; 


     $options .= '<option value="de" '; 
     if($language == "de"){$option .= "selected"; } 
     $options .= '>Deutsch</option>'; 

     $options .= '<option value="en" '; 
     if($language == "en"){$option .= "selected"; } 
     $options .= '>English</option>'; 

     $options .= '<option value="fr" '; 
     if($language == "fr"){$option .= "selected"; } 
     $options .= '>Français</option>'; 

     $options .= '<option value="nl" '; 
     if($language == "nl"){$option .= "selected"; } 
     $options .= '>Nederlands</option>'; 

    ?> 
+0

不,还是没有得到任何输出的选项。 $ filterUrl的输出是域。 – fr3d

0

你具备的条件错了,如果你不希望包括基于域的语言选项,它应该是这样的 if ($filterUrl !== "www.domain.de")。你的版本if (!$filterUrl == "www.domain.de")首先否定字符串,它给你空字符串,然后比较它,这显然总是假的。

所以整个的解决方案是这样的:

<?php 
$filterUrl = $_SERVER['HTTP_HOST']; 
?> 
<select class="jsFilter" name="language"> 
    <option value>Sprache</option> 
    <?php if ($filterUrl !== "www.domain.de"){?><option value="de" <?php if(isset($_GET['language']) && $_GET['language']=='de'){echo "selected";}?>>Deutsch</option><?php } ?> 
    <?php if ($filterUrl !== "www.domain.com"){?><option value="en" <?php if(isset($_GET['language']) && $_GET['language']=='en'){echo "selected";}?>>English</option><?php } ?> 
    <?php if ($filterUrl !== "www.domain.fr"){?><option value="fr" <?php if(isset($_GET['language']) && $_GET['language']=='fr'){echo "selected";}?>>Français</option><?php } ?> 
    <?php if ($filterUrl !== "www.domain.nl"){?><option value="nl" <?php if(isset($_GET['language']) && $_GET['language']=='nl'){echo "selected";}?>>Nederlands</option><?php } ?> 
</select>