ドロップダウンの選択に応じて変化する動的ページを作成しようとしています。セットアップのために、2 つのドロップダウンがあります。これを説明する最も簡単な方法は、国と州のドロップダウンです。特定の状態が選択されたときに、別の div にその状態に関する情報が入力されるようにしたいと思います。これは単なる例ですが、私が探しているものはほとんどです。簡単な Javascript と配列を使用して 2 つのドロップダウンをセットアップし、そのように設定しました。
<script type="text/javascript">
var postState = '';
var postCountry = '';
var state = '\
US:AK:Alaska|\
US:AL:Alabama|\
US:AR:Arkansas|\
';
var country = '\
US:United States|\
';
function populateCountry(defaultCountry) {
if ( postCountry != '' ) {
defaultCountry = postCountry;
}
var countryLineArray = country.split('|'); // Split into lines
var selObj = document.getElementById('countrySelect');
selObj.options[0] = new Option('Select Country','');
selObj.selectedIndex = 0;
for (var loop = 0; loop < countryLineArray.length; loop++) {
lineArray = countryLineArray[loop].split(':');
countryCode = TrimString(lineArray[0]);
countryName = TrimString(lineArray[1]);
if ( countryCode != '' ) {
selObj.options[loop + 1] = new Option(countryName, countryCode);
}
if ( defaultCountry == countryCode ) {
selObj.selectedIndex = loop + 1;
}
}
}
function populateState() {
var selObj = document.getElementById('stateSelect');
var foundState = false;
// Empty options just in case new drop down is shorter
if ( selObj.type == 'select-one' ) {
for (var i = 0; i < selObj.options.length; i++) {
selObj.options[i] = null;
}
selObj.options[0] = new Option('Select State','');
selObj.selectedIndex = 0;
}
// Populate the drop down with states from the selected country
var stateLineArray = state.split("|"); // Split into lines
var optionCntr = 1;
for (var loop = 0; loop < stateLineArray.length; loop++) {
lineArray = stateLineArray[loop].split(":");
countryCode = TrimString(lineArray[0]);
stateCode = TrimString(lineArray[1]);
stateName = TrimString(lineArray[2]);
if (document.getElementById('countrySelect').value == countryCode && countryCode != '' ) {
// If it's a input element, change it to a select
if ( selObj.type == 'text' ) {
parentObj = document.getElementById('stateSelect').parentNode;
parentObj.removeChild(selObj);
var inputSel = document.createElement("SELECT");
inputSel.setAttribute("name","state");
inputSel.setAttribute("id","stateSelect");
parentObj.appendChild(inputSel) ;
selObj = document.getElementById('stateSelect');
selObj.options[0] = new Option('Select State','');
selObj.selectedIndex = 0;
}
if ( stateCode != '' ) {
selObj.options[optionCntr] = new Option(stateName, stateCode);
}
// See if it's selected from a previous post
if ( stateCode == postState && countryCode == postCountry ) {
selObj.selectedIndex = optionCntr;
}
foundState = true;
optionCntr++
}
}
function initCountry(country) {
populateCountry(country);
populateState();
}
</script>
私はJavascriptが得意ではないので、それは私が持っている限りです。ドロップダウンにデータを入力する簡単な方法があれば、私はそれで十分です。私はPHPの経験が豊富なので、コンテンツを表示するための何らかのクロスオーバーを望んでいました。
繰り返しますが、ドロップダウンは 2 つあります。1 でオプションを選択すると、2 でさまざまなオプションが使用可能になります。2 でオプションをクリックすると、その下の DIV に情報が表示されます。ユーザーは、オプションの選択と情報の表示を続行できる必要があります。