我已经检查了其他一些类似的问题,但是它们并没有完全按照我的意愿去做。我正在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输出的内容
答案 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>