不返回带有通过javascript
中的ajax填充的选项的选择对象下面我将html DOM行添加到现有的html表中,其中html表有三列,一列带有名称,另一列带有选择框,最后一列有按钮,通过ajax动态保存名称选项
因此创建行的功能是
function createTable(row){
var table = document.getElementById("table");
var row = table.insertRow(row);
var cell1 = row.insertCell(0);
cell1.innerHTML = "something";
var cell2 = row.insertCell(1);
cell6.appendChild(createSelctbox());
...
..
}
和使用其选项创建select对象的ajax调用是
function createSelctbox(){
var selec = document.createElement("select");
var xmlhttp = getXMLObject();
if(xmlhttp)
{
xmlhttp.open("POST","some.php",true);
xmlhttp.onreadystatechange = function()
{
if (xmlhttp.readyState == 4)
{
if(xmlhttp.status == 200)
{
var data = JSON.parse(xmlhttp.responseText);
var option;
for(var i=0;i<data.length;i++){
option = document.createElement('option');
option.value=data[i].id;
option.appendChild(document.createTextNode(""+data[i].something+""));
selec.appendChild(option);
}
return selec;
}
}
}
xmlhttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
xmlhttp.send("display="+type);
}
这样可以像这样返回
答案 0 :(得分:1)
We unable to add <option>xx</option> parts in select box dynamically.
Instead you can try to create full select box.
即,
<select>
<option>1</option>
<option>2</option>
</select>
if you want to add <option>3</option>, then you should make new select box with newly added item.
欢呼声。
答案 1 :(得分:1)
我非常怀疑,问题在于async
选项
您可以尝试更改此行
xmlhttp.open("POST","some.php",true);
到
xmlhttp.open("POST","some.php",false);