Динамически заполнить динамически созданный список выбора - PullRequest
1 голос
/ 17 июня 2011

У меня тут небольшие трудности;Я использую js для динамического создания полей выбора, но мне нужен Ajax, чтобы заполнить их параметрами.Пока что мой код возвращается неопределенным, и я, честно говоря, не знаю, что здесь делать.Мой php возвращает информацию нормально, но js не разбирает ее.Здесь бы оценили другой набор глаз или другой мозг, полный знаний;

function getSkilllist(group) {
    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) {
            return xmlhttp.responseText;
        }
    }
    xmlhttp.open("GET","skl_lst_gen2.php?group=" + group + "&t=" + Math.random(),true);
    xmlhttp.send();
}

function addInput(divName,group) {
var skillst = getSkilllist(group);
var newdiv = document.createElement('div');
newdiv.innerHTML = '<select name="ski[]">' + skillst + '</select> .....

Остальная часть функции в порядке, но var skillst возвращает неопределенное значение, как указано, и я не могу понять,Зачем.Я предполагаю, что это как-то связано со строками, но я не могу понять, что нужно сделать.

1 Ответ

1 голос
/ 17 июня 2011

Ваша функция ничего не возвращает, поэтому она не работает.Попробуйте это:

function getSkilllist(group) {
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) {
       var newdiv = document.createElement('div');
       newdiv.innerHTML = '<select name="ski[]">' + xmlhttp.responseText + '</select> .....

       //place in DOM here
    }
}
xmlhttp.open("GET","skl_lst_gen2.php?group=" + group + "&t=" + Math.random(),true);
xmlhttp.send();
}

function addInput(divName,group) {
getSkilllist(group);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...