Какой простой шаг на этом javascript, php, ошибка отображения отсутствует? не могу понять это

это код:

<?php $countrycode=$p["country"]; ?>
<select size="1" name="countrycode" id="countrycode" onchange="javascript:
if(this.value=='USA') {
document.getElementById('us').style.display='block';
} else {
document.getElementById('us').style.display='none';
}
if(this.value=='DE') {
document.getElementById('de').style.display='block';
} else {
document.getElementById('de').style.display='none';
}
">
<option value="INT" <?php
if($countrycode=='INT') { echo 'selected="selected"'; } ?>
>International</option>
<option value="USA" <?php
if($countrycode=='USA') { echo 'selected="selected"'; } ?>
>USA</option>
<option value="DE" <?php
if($countrycode=='DE') { echo 'selected="selected"'; } ?>
>DE</option>
</select>

Вот что я получаю в результате:

Когда это значение «DE», ничего не появляется ниже.

Когда это значение «США», появляются все (даже те, что для «DE»).
Как это:

Также разрешить: Канада ¦ Великобритания ¦ Австралия: нет; «id =» de «> (>> последняя часть не должна отображаться — означает отображение: нет;» id = «de»>)

Также разрешить: Швейцария Австрия (>> это должно отображаться на значении ‘DE’)

Был бы очень признателен за решение, которое помогает мне.

0

Решение

Вот недостающее эхо (просто забыл)

<?php if($countrycode=='USA') { echo 'display:block;'; } else { echo 'display:none;'; }
?>

«id =» us «>
Также разрешите:

Значение = «1»> Канада
 

<?php
if($p["UK"]=='1') { echo 'checked="checked"'; } ?>

value = «1»> Великобритания
 

<?php
if($p["AU"]=='1') { echo 'checked="checked"'; } ?>

Значение = «1»> Австралия

<?php if($countrycode=='DE') { echo 'display:block;'; } else { echo 'display:none;'; } ?>

«id =» de «>
Также разрешите:

Значение = «1»> Швейцария
 

<?php
if($p["AT"]=='1') { echo 'checked="checked"'; } ?>

Значение = «1»> Австрия

0

Другие решения

JS Fiddle пример лучшего способа сделать это:

http://jsfiddle.net/m55nb59x/1/

HTML:

<select id="countrycode" name="countrycode">
<option value="INT">International</option>
<option value="USA">USA</option>
<option value="DE">DE</option>
</select>
<div id="us">USA div</div>
<div id="de">DE div</div>
<div id="int">INT div</div>

JS:

var selectedCountry = '<? echo $p["country"]; ?>';
//var selectedCountry = 'USA'; // for testing
var divs = $('#us, #de, #int');
var countryCodeSelector = $('#countrycode');
countryCodeSelector.val(selectedCountry);
selectCountry(selectedCountry);
countryCodeSelector
.change(
function() {
var code = $(this).val();
selectCountry(code);
}
)
;
function selectCountry(code){
var selectedID = '';
switch(code){
case 'USA':
selectedID = 'us';
break;
case 'DE':
selectedID = 'de';
break;
case 'INT':
selectedID = 'int';
break;
}
divs.hide();
$('#' + selectedID).show();
}

Дальнейшая оптимизация должна быть сделана, но это работает (например, настройка отображения между значениями Страны, идентификаторами и названиями.

0

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector