Я использую вызов ajax для обновления меню выбора.Вызов ajax помещает список в мое меню выбора, запустив его из другого файла .php.
Вот фрагмент вставки JS:
if (req.status == 200) {
document.getElementById('countydiv').innerHTML=req.responseText;
} else {
alert("There was a problem while using XMLHTTP:\n" + req.statusText);
}
А вот HTML:
<label for="county">County:</label>
<div id="countydiv">
<select name="county">
<option>Select State First</option>
</select>
</div>
Достаточно просто.Сценарий работает, но ТОЛЬКО если <div id="countydiv">
находится там.
Как я могу изменить JavaScript для работы с разметкой, которая выглядит следующим образом?
<label for="county">County:</label>
<select name="county">
<option>Select State First</option>
</select>
Обновление: Может быть, мне следует включить целую функцию:
function getCounty(stateId) {
var strURL="findCounty.php?state="+stateId;
var req = getXMLHTTP();
if (req) {
req.onreadystatechange = function() {
if (req.readyState == 4) {
// only if "OK"
if (req.status == 200) {
document.getElementById('countydiv').innerHTML=req.responseText;
} else {
alert("There was a problem while using XMLHTTP:\n" + req.statusText);
}
}
}
req.open("GET", strURL, true);
req.send(null);
}
}
И разметка:
<p>
<label for="state">State:</label>
<select name="state" onChange="getCounty(this.value)">
<option>Select State...</option>
<option>1</option>
<option>2</option>
<option>3</option>
</select>
</p>
<p>
<label for="county">County:</label>
<select name="county">
<option>Select State First</option>
</select>
</p>