Ajax 无法读取属性';价值';未定义的onchange事件的类型
我使用包含数据的json文件处理Ajax。我只想通过ajax以我设计的某种形式检索数据 以下是json文件:Ajax 无法读取属性';价值';未定义的onchange事件的类型,ajax,json,Ajax,Json,我使用包含数据的json文件处理Ajax。我只想通过ajax以我设计的某种形式检索数据 以下是json文件: { "movies":[ { "title":"Thegodfather", "year":"1972", "genre":"Drama", "directory":"franl stploen" }, { "title":"superBad", "year":"2007",
{
"movies":[
{
"title":"Thegodfather",
"year":"1972",
"genre":"Drama",
"directory":"franl stploen"
},
{
"title":"superBad",
"year":"2007",
"genre":"comedy",
"directory":"franl stploen"
},
{
"title":"The Departed",
"year":"2006",
"genre":"Drama",
"directory":"franl stploen"
},
{
"title":"The Expandalbes",
"year":"2010",
"genre":"Action",
"directory":"Silvster stalone"
},
{
"title":"Batman",
"year":"2008",
"genre":"Acion",
"directory":"franl stploen"
}
]
}
html代码非常简单:
<body onload="getmovietitles()">
<div id="container"><h1>My Favorites's Movies</h1></div>
<div id="movietitle"></div>
<br />
<div id="movieinfo"></div>
<pre>
<script>
function getmovietitles() {
var xmlhttp;
if (window.XMLHttpRequest) {// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp = new XMLHttpRequest();
} else {// code for IE6, IE5
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange = function() {
if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
var jsondata = JSON.parse(xmlhttp.responseText);
var movies = jsondata.movies;
var output = '<form>';
output +='<select id="movie_select" onchange="movieSelect()">';
for (var i=0; i < movies.length;i++){
output +='<option value="'+i+'">'+movies[i].title+'</option>';
}
output += '</select>';
output += '</form>';
document.getElementById("movietitle").innerHTML = output;
}
}
xmlhttp.open("GET","movies.json",true);
xmlhttp.send();
}
function movieSelect() {
var selectbox = document.getElementById("movie_select");
var movieindex = selectbox.options[selectbox.selectedindex].value;
getmovieinfo(movieindex);
}
function getmovieinfo(i) {
var xmlhttp;
if (window.XMLHttpRequest) {// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp = new XMLHttpRequest();
} else {// code for IE6, IE5
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange = function() {
if (xmlhttp.readyState==4 && xmlhttp.status==200) {
var jsondata = JSON.parse(xmlhttp.responseText);
var movies = jsondata.movies;
var output='';
output +='<li>Year: '+movies[i].year+ '</li>';
output +='<li>Genre: '+movies[i].genre+ '</li>';
output +='<li>Directory: '+movies[i].directory+ '</li>';
document.getElementById('movieinfo').innerHTML = output;
}
}
xmlhttp.open("GET","movies.json",true);
xmlhttp.send();
}
</script>
</pre>
我最喜欢的电影
函数getmovietitles(){
var-xmlhttp;
if(window.XMLHttpRequest){//IE7+、Firefox、Chrome、Opera、Safari的代码
xmlhttp=新的XMLHttpRequest();
}else{//IE6、IE5的代码
xmlhttp=新的ActiveXObject(“Microsoft.xmlhttp”);
}
xmlhttp.onreadystatechange=函数(){
if(xmlhttp.readyState==4&&xmlhttp.status==200){
var jsondata=JSON.parse(xmlhttp.responseText);
var movies=jsondata.movies;
var输出=“”;
输出+='';
for(var i=0;i年:'+movies[i].年+';
输出+='类型:'+movies[i].类型+' ';
输出+='目录:'+movies[i]。目录+' ;
document.getElementById('movieinfo')。innerHTML=输出;
}
}
open(“GET”,“movies.json”,true);
xmlhttp.send();
}
脚本函数中有一个问题,但我不知道它在哪里
我只想知道问题出在哪里,为什么没有运行?输入错误:
var movieindex = selectbox.options[selectbox.selectedIndex].value;
应该是:
var movieindex = selectbox.options[selectbox.selectedIndex].value;