添加选项以选择在PHP中回显的每一行

时间:2018-10-03 04:47:01

标签: javascript php jquery ajax loops

我已经检查了其他一些类似的问题,但是它们并没有完全按照我的意愿去做。我正在ajaxing一个php页面以回显服务器上文件夹的内容。现在,我逐行列出了文件。我只想取每行的值并将其添加到选择框。

如果我能在javascript中为从该php页面中找到的每一行运行一个循环的方法,可以将该选项添加到自己的选择中。关于如何实现这一目标的任何想法?我在网上找到的所有内容都是针对不同的情况的,我找不到任何有效的方法。谢谢

编辑:这是我得到的最接近的

var files = msg.split(" ");
                $.each(files, function(index, value) {
                    var x = document.getElementById("Emulators");
                    var option = document.createElement("option");
                    option.text = files;
                    x.add(option);
                });

当我这样做时,this is the result

有人知道为什么它是最后一个下拉菜单吗?这就是php page输出的内容

2 个答案:

答案 0 :(得分:1)

最简单的方法是使用$.append() doc。就像您已经在使用JS / jQuery一样。

将其作为返回的一部分或遍历文件。如果将文件添加到ajax调用的.success(data)函数中,则无需创建文件。只需让您正在调用的PHP文件以您可以解释的格式(例如,json_encode输出数组)回显您所需的内容即可。

编辑添加建议:

以下内容未经测试,仅供参考:

NB:这期望test.php将格式化的数据输出为通过json_encode解析的数组。

$.ajax({
  url: "test.php"
}).success(function(data) {
  var files = JSON.parse(data);
  $.each(files, function(index, value) {
     $('#result-div').append( value );
  });
});

答案 1 :(得分:0)

这是一种使用数组映射函数调用jQuery的append函数来遍历数据的方法。

const mySelect = $('#my-select');
const files = ['path/file1.ext', 'path/file2.ext'];

files.map(x => {
  mySelect.append( $('<option value="' + x + '">' + x + '</option>') );
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select id="my-select"></select>