2016-09-19 62 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>