[英]How to populate a select dropdown with a list of JSON values using JS fetch()?
[英]Using PHP array and JS to populate values into dropdown
我正在使用PHP和JS从SQL表获取数据,然后将结果填充到一个下拉列表中。
我的代码工作正常,但是使用return输出作为JS数组时遇到问题。
在代码的PHP部分,我将输出格式化为JSON编码'
echo $js_array = json_encode($Unit_tenants);
// output is ["1","2","3"]
现在,我想将此输出的返回值与JS一起使用,以将这些值填充到具有值1,2,3的下拉列表中
我的JS代码
<script>
$(document).ready(function(){
$('#ddlUnitNo').change(function(){
//Selected value
var inputValue = $(this).val();
//Ajax for calling php function
$.post('list.php', { dropdownValue: inputValue }, function(data){
//do after submission operation in DOM
var select = document.getElementById("selectNumber");
var options = data;
// Optional: Clear all existing options first:
select.innerHTML = "";
// Populate list with options:
for(var i = 0; i < options.length; i++) {
var opt = options[i];
select.innerHTML += "<option value=\"" + opt + "\">" + opt + "</option>";
}
});
});
});
</script>
问题在于var options = data
因为它被识别为字符串,而不是具有多个值的数组。 任何想法如何解决这个问题?
Javascript不会接受php数组作为数组。 您需要将其转换为数组,或者在这种情况下为JSON对象。
请尝试以下操作:
在php中:
return json_encode($data);
在javascript中:
var options = JSON.parse(data);
// Populate list with options:
for(var i = 0; i < options.length; i++) {
var opt = options[i];
select.innerHTML += "<option value=\"" + opt + "\">" + opt + "</option>";
}
试试这个,PHP方式
<?php $js_array = ["1","2","3"]; ?>
<select name="someName" onChange="">
<option value="" selected>Select One</option>
<?php for($k=0, $< count($js_array); $k++){ ?>
<option value="<?php echo($js_array[$k] ?>"><?php echo($js_array[$k] ?></option>
<?php } ?>
</select>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.