2016-03-27 20 views
-1

'a eşitse, Singaporean değerini seçtiğimde .cities yorumunu açıklamak istiyorum ancak görünür olması gerekir, eğer singaporean dışında başka bir uyruğu seçersem. PHP'de mümkün mü? PHP - Seçenek değeri

<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> 

Bu çalıştı ama nedense

<?php 

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


?> 

HATA çalışmıyor: Sen js içinde onchange işleyicisi kullanabilir ve

+0

Uyarı: Tanımsız endeksi: emp_nationality böyle değişken sadece bu seçenekler orada vardır demektir? – Innervisions

+0

kodunuzun daha fazlasını postalayabilmeniz için – sismaster

+0

cevap

1

emp_nationality: Tanımsız endeksi Seçilen değere bağlı olarak ".cities" divini gizler/gösterir. Not Bir ekran ekledim: seçim listesindeki ilk seçeneğiniz Singapur'dur ve işlev tetiklemek için bir değişiklik gerektirir. Ayrıca normal olarak onclick'i ayrı bir işleyici olarak ayırırdım - HTML'ye karıştırmak yerine bu örnek için bu şekilde yaptım. Sayfa yüklemesinde seçilecek seçeneğe ihtiyaç duyan PHP'yi gerektirmez ve farklı bir seçenekle div'un görünürlüğünü kolayca değiştiremez. Bu, doğru seçenek seçiliyse ve diğer seçenek seçeneklerinde gösteriliyorsa, div'i gizlemeye yarar.

<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

Mükemmel! Bu benim problemimin yarısını çözüyor. Sitit sınıfları benim gerekli alanım ve eğer benim formumun gizlenmemesi durumunda ... –

+0

ama şehirler bir giriş alanı değiller ve bu yüzden "gerekli" olamazlar. bu bir div. Bir girdi alanı olması gerekiyorsa, o zaman bir giriş alanı olması gerekir ve sonra özniteliğini formda olmasına izin verilip kullanılmayacak şekilde devre dışı bırakabilirsiniz. ve tesadüfi olarak - eğer OP'nizde olduğu gibi - yorum yaparsanız, o zaman sayfaya işlenmeyecek ve geçerli olmayacak, hatta mevcut olmayacaktır! – gavgrif

+0

Üzgünüm .. Bu sadece benim giriş alanım .. –

0

kaçınmak olacaktır isterseniz

\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>
"Tanımsız endeksi: emp_nationality" Emin bu değişken onun değer kontrol etmeden önce var yapmak gerekir. Isset() kullanın. 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

Bu, sayfa yükündeki divu gösterecek/göstermeyecek, ancak sorun, kullanıcı farklı bir seçenek seçerse bu ".cities" in görüntülenmesine izin vermeyecek olmasıdır. sayfa yüklendikten sonra. Orijinal problemi anlamak benim seçimin "Singaporean" değeri değilse, farklı seçeneklerin seçilmesinin div gösterilmesine izin vermesiydi. – gavgrif

İlgili konular