2016-03-27 39 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

相关问题