2016-03-27 4 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>'; 
} 


?> 

ОШИБКА: Undefined индекс: emp_nationality

+0

Примечание: Не определено индекс: emp_nationality означает, что нет такой переменной там только эти варианты? напишите больше своего кода – Innervisions

+0

можете ли вы отправить код с тегом формы, чтобы я мог просмотреть – sismaster

+0

ответ

1

Вы можете использовать OnChange обработчик в JS и скрыть/показать «.cities» div в зависимости от выбранного значения. Примечание. Я добавил отображение: none в .cities, так как ваш первый вариант в списке выбора - сингапурский, и для функции требуется изменение, чтобы вызвать его. Кроме того, я бы обычно разделял 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

Если вы хотели бы, чтобы избежать «Undefined индекс: 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

Смежные вопросы