尽管我发现了类似的问题,但那里提到的解决方案似乎对我不起作用。

我正在尝试做的是:


使用Ajax提取数据库的所有表名
将表名称作为选项以及相应的值填写到选择字段中


我走了多远:

我的fetch_devices php脚本回显了:

[“ test1”,“ test2”,“ test3”]

function FetchDevices(){
alert("Fetching");
$.ajax({
    url: 'php/sql/fetch_devices.php',
    success: function(devices) {
        var elements = Object.keys(devices).length;
        var select = document.getElementById("devices");
        var option = document.createElement("option");
        var i = 0;
        while(i < elements)
        {
            option.text= devices[i];
            option.value= devices[i];
            select.appendChild(option);
            i++;
        }

    },
    cache: false
});


}

但是最后我只看到最后一个选项“ test3” .....

为什么会这样呢?

提前致谢!

最好的祝福,

最佳答案

您要覆盖相同的option。 Aslo使用add()。更改为

 while(i < elements)
    {
        var option = document.createElement("option");
        option.text= devices[i];
        option.value= devices[i];
        select.add(option);
        i++;
    }

09-20 23:57