2016-03-27 41 views
-1

我想評論.cities每當我選擇值Singaporean但它應該可見如果我選擇除了新加坡之外的任何其他國籍。在PHP中可能嗎?PHP - 如果選擇的選項值等於

<div class="cities">New York</div> 

<select id="emp_nationality" name='emp_nationality' class='form-control'> 
<option value="Singaporean">Singaporean</option> 
<option value="Albanian">Albanian</option> 
<option value="Algerian">Algerian</option> 
<option value="American">American</option> 
</select> 

我試過,但由於某種原因,它不工作

<?php 

if ($_POST['emp_nationality'] != 'Singaporean') { 
echo '<div class="cities">New York</div>'; 
} 


?> 

錯誤:未定義指數:emp_nationality

+0

注意:未定義指數:emp_nationality意味着不存在這樣的變量都僅存在這些選項?發表更多你的代碼 – Innervisions

+0

你可以發表帶有表格標籤的代碼,以便我可以查看 – sismaster

+0

回答

1

可以在JS使用onChange處理和根據所選值隱藏/顯示「.cities」div。注意:由於您在選擇列表中的第一個選項是新加坡人,並且該功能需要更改以觸發它,所以我在.cities中添加了一個display:none。此外,我通常會將onclick作爲單獨的處理程序分離 - 而不是將其混合到HTML中,但對於此示例,我是這樣做的。不需要PHP,它需要在頁面加載時選擇該選項,並且不會輕易改變div在不同選項上的可見性。如果選擇了正確的選項,該功能將隱藏div並在其他選項上顯示。

\t function hideDiv(option) \t 
 
\t { 
 
\t \t if(option=="Singaporean"){$('.cities').hide()}else{$('.cities').show()} 
 
\t }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div class="cities" style="display:none">New York</div> 
 

 
<select id="emp_nationality" name='emp_nationality' class='form-control' onchange="hideDiv(this.value)"> 
 
<option value="Singaporean">Singaporean</option> 
 
<option value="Albanian">Albanian</option> 
 
<option value="Algerian">Algerian</option> 
 
<option value="American">American</option> 
 
</select>

<div class="cities" style="display:none">New York</div> 

<select id="emp_nationality" name='emp_nationality' class='form-control' onchange="hideDiv(this.value)"> 
<option value="Singaporean">Singaporean</option> 
<option value="Albanian">Albanian</option> 
<option value="Algerian">Algerian</option> 
<option value="American">American</option> 
</select> 


//js 
function hideDiv(option)  
{ 
    if(option=="Singaporean"){$('.cities').hide()}else{$('.cities').show()} 
} 
+0

太棒了!這解決了我的一半問題。班級citites是我的必填字段,如果我隱藏,我的表格將不會被驗證。 –

+0

但城市不是輸入字段,因此不能被「需要」。它是一個div。如果你需要它是一個輸入字段,那麼你需要它是一個輸入字段,然後你可以設置該屬性爲禁用,這將允許它在窗體中,但不使用。順便說一句 - 如果在您的OP中,您將其註釋掉,那麼它將不會呈現在頁面中,並且不會有效或甚至不存在! – gavgrif

+0

對不起。這是我的輸入字段.. –

0

如果你喜歡就避免了「未定義指數:emp_nationality」你需要確保這個變量檢查​​它的價值之前就存在。使用isset()。 http://php.net/manual/en/function.isset.php

if (isset($_POST['emp_nationality']) && ($_POST['emp_nationality'] != 'Singaporean')) { 
    echo '<div class="cities">New York</div>'; 
} 
+0

這將顯示/不顯示頁面加載div,但問題是,如果用戶選擇不同的選項,這將不允許顯示「.cities」在頁面加載之後。我對原始問題的理解是,如果選擇不是「新加坡人」的價值,選擇不同的選項允許顯示div。 – gavgrif

相關問題