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

时间:2012-10-05 10:42:34

标签: javascript ajax

不返回带有通过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);              

}

这样可以像这样返回

2 个答案:

答案 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);