1
我在这里有点困难;我使用js动态创建选择框,但我需要Ajax来填充选项。到目前为止,我的代码返回undefined,我坦率地不知道该怎么做。我的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被返回undefined如说,我想不通为什么。我认为它与字符串有关,但我无法弄清楚需要做什么。
请记住,(正常)Ajax请求的异步* *,所以'你其他的代码继续'xmlhttp.send()后执行,而不必等待回应,然后从Ajax请求的响应稍后处理。所以你的'getSkilllist'函数根本不返回任何东西,'skillst'将会是未定义的,但是你的其他代码会继续,'div'被创建等。当Ajax响应进入你为'xmlhttp定义的匿名函数.onreadystatechange'将会执行,所以这就是你需要根据下面的答案创建'div'的地方。 – nnnnnn 2011-06-17 01:08:58