0

javascriptのajaxを介して入力されたオプションを持つ選択オブジェクトを返しません

以下では、既存のhtmlテーブルを使用してhtml DOM行を追加しています。ここで、htmlテーブルには3つの列があり、1つは名前、もう1つは選択ボックス、最後の列には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);              

}

だから、これはこのように戻ることが可能ですか?

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.

つまり、

<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 に答える