Javascript 在页面加载期间使用Ajax函数调用填充html下拉列表
我有一个下拉列表,需要填充json文件中的内容。我有一个php文件,可以解析这个json文件并返回所需的输出 这是我的jsonJavascript 在页面加载期间使用Ajax函数调用填充html下拉列表,javascript,php,ajax,json,Javascript,Php,Ajax,Json,我有一个下拉列表,需要填充json文件中的内容。我有一个php文件,可以解析这个json文件并返回所需的输出 这是我的json <?php $filecontents = file_get_contents('users.txt'); $jsonIterator = new RecursiveIteratorIterator(new RecursiveArrayIterator(json_decode($filecontents, TRUE)),Recur
<?php
$filecontents = file_get_contents('users.txt');
$jsonIterator = new RecursiveIteratorIterator(new RecursiveArrayIterator(json_decode($filecontents, TRUE)),RecursiveIteratorIterator::SELF_FIRST);
foreach ($jsonIterator as $key => $val) {
if(!is_array($val) && $key == "templatename"){
echo '<option>'.$val.'</option>';
}
}
?>
这是我的html页面
<script>
window.onload = function() {
loadTest();
};
function loadTest()
{
var xmlhttp=new XMLHttpRequest();
document.getElementById("testdropdown").innerHTML=xmlhttp.responseText;
xmlhttp.open("get","2test.php",true);
xmlhttp.send();
}
</script>
<select name="test dropdown" id="testdropdown"></select>
我所做的ajax查询似乎不起作用
这是我的php文件的输出
<option>1-1</option><option>1-2</option>
在标签中添加以下内容之一,以便在页面加载时调用loadTest: 如果使用jQuery:
$(document).ready(function() {
loadTest();
});
否则:
window.onload = function() {
loadTest();
};
结果我错过了几行代码
var xmlhttp=new XMLHttpRequest();
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById("testdropdown").innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("get","2test.php",true);
xmlhttp.send();
这似乎解决了问题。看来我的Ajax查询是错误的。当我尝试使用您的方法加载一个更普通的javascript方法时,它起了作用。