Заполнение выпадающих списков с помощью Ajax - PullRequest
0 голосов
/ 14 декабря 2010

Всего нуб к ajax здесь, насколько я близок с этим синтаксисом?Я хочу, чтобы второй выпадающий список зависел от первого выпадающего списка.Я знаю, что это не самый простой способ решить эту проблему, поэтому любая помощь приветствуется.acura.txt - текстовый файл с разметкой для создания другого выпадающего списка.Спасибо всем за помощь!

JavaScript:

function loadXMLDoc() {
    if (window.XMLHttpRequest) { // code for IE7+, Firefox, Chrome, Opera, Safari
        xmlhttp = new XMLHttpRequest();
    } else { // code for IE6, IE5
        xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
    }
    xmlhttp.onreadystatechange = function() {
        if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
            document.getElementById("acura").innerHTML = xmlhttp.responseText;
        }
    }
    xmlhttp.open("GET", "acura.txt", true);
    xmlhttp.send();
}

HTML:

<select id="stateinjured">
    <option selected="selected">Select your state</option>
    <option id="acura" onClick="loadMXLDOC">Acura</option>
    <option id="bmw">BMW</option>
    <option id="audi">Audi</option>
    <option id="benz">Benz</option>
</select>

1 Ответ

0 голосов
/ 14 декабря 2010

Не удастся вставить тег <select> (с его собственным содержанием <option>, предположительно) в содержимое тега <option>. Вот что ваш код попытается сделать сейчас.

Этот код здесь:

if (xmlhttp.readyState==4 && xmlhttp.status==200)
  {
  document.getElementById("acura").innerHTML=xmlhttp.responseText;
  }

Элемент, у которого значение "id" равно "acura", является одним из тегов <option> в <select> на странице. Таким образом, если этот текст ответа - просто <select>, он пойдет не в том месте.

Может быть, вы просто хотите получить еще один <span> на странице или что-то еще; это зависит от того, как он должен выглядеть.

Другое дело: вы не хотите регистрировать событие «щелчка» на <option>. Возможно, что опция будет выбрана (пользователем) без каких-либо «щелчков». Возможно, вам следует отследить событие «change» в теге <select> и проверить значение в обработчике.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...