javascript - 如何在ajax中添加下拉选项

标签 javascript arrays ajax

请帮忙,因为我无法向选择菜单添加选项。数据是 ~~ 类型的字符串形式。因此,我在这里分割数据,然后循环遍历数据的长度并根据选项进行设置。

下面是ajax代码

function showCircle() {

          alert("Microsoft");

         xmlhttp = window.XMLHttpRequest ? new XMLHttpRequest() : new ActiveXObject("Microsoft.XMLHTTP");
      xmlhttp.onreadystatechange = handleStateChange;
      xmlhttp.open("POST", "GetCircleDetails" , true);

          xmlhttp.send();
        }

    function handleStateChange() {
            if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
                alert("The server replied with: " );
                var splits21 = xmlhttp.responseText.split("~");
                var select = document.getElementById("circle");
                var opt = document.createElement("option"); 
                var i = 0;
                for (i = 0 ; i < xmlhttp.responseText.length ; i++)
                    {
                    opt.valueOf(splits21[i]);
                select.appendChild(opt);
            }


              alert("The server replied with: " +xmlHttp.responseText);
            }

下面是使用的 HTML 标签。

<select  name="slabFrom" onchange="showCircle(this.value)">
<option>--select--</option>
<option>slab1</option>
<option>slab2</option>
<option>slab3</option>
<option>slab4</option>

</select> 

</br>
</br>
The circle is:<select  id= 'circle' name="circle" >

最佳答案

您必须在 handleStateChange 中进行一些更正功能:

1) 更改您在 for 中迭代的内容至splits21而不是xmlhttp.responseText .

2) 移动var opt = document.createElement("option");进入for迭代

3) 更改 opt.valueOf(splits21[i]);opt.value = splits21[i];

4) 添加结束标签到 select在html中:<select id='circle' name="circle"></select>

查看演示 - codepen .

function handleStateChange() {
  if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
    var splits21 = xmlhttp.responseText.split("~");
    var select = document.getElementById("circle");
    var opt;

    for (i = 0; i < splits21.length; i++) {
        if (splits21[i]) {
          opt = document.createElement("option");
          opt.innerHTML = splits21[i];
          opt.value = splits21[i];
          select.appendChild(opt);
        }  
    }

}

关于javascript - 如何在ajax中添加下拉选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35463218/

相关文章:

javascript - 类型错误 : ticker is undefined During SignalR implementation

javascript - devExtreme TreeView 展开、滚动和聚焦

javascript - 表单的提交按钮不起作用。你能告诉我我做错了什么吗?

Javascript:为什么 FOR 循环会跳过所有其他匹配项?

javascript - 无法限制WebRTC P2P多人接收带宽

从 mysql 查看结果设置类数组键时 PHP 中断

php - Yii:如何从数组中设置 dropDownList 'options'

javascript - 游戏循环内无法正确读取数组值

php - 如何在单击单选按钮时插入数据 - jquery/php/mysql?

php - 使用ajax php mysql动态依赖下拉菜单