0

不返回带有通过 ajax 在 javascript 中填充的选项的选择对象

下面我用现有的 html 表添加 html DOM 行,其中 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());
  ...
 ..
}

并且使用其选项创建选择对象的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);              

}

那么这有可能像这样返回吗

4

2 回答 2

1
We unable to add <option>xx</option> parts in select box dynamically.
Instead you can try to create full select box.

IE,

<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.

干杯。

于 2012-10-08T12:38:47.083 回答
1

我高度怀疑,问题出在async选项上

您可以尝试更改此行

xmlhttp.open("POST","some.php",true);

xmlhttp.open("POST","some.php",false);
于 2012-10-09T04:46:02.583 回答