이 Ajax는 PHP 파일에서 정보를 검색하지 않으므로 Firebug에서 Javascript를 검사 할 때 responseText가 정의되지 않은 상태로 돌아 오는 것을 발견했습니다. 여기
responseText 변수가 반환되는 이유는 무엇입니까?
function getTeams(sport)
{
var req = new XMLHttpRequest();
var nextTeam, nextOption;
// callback function, using "closure"
req.onreadystatechange = function()
{
if((req.readyState == 4) && (req.status == 200))
{
var result = req.responseText;
// array teams created here
var teams = result.split(", ");
for(var i = 0; i < teams.length; i++)
{
nextTeam = teams[i];
nextOption = new Option(nextTeam);
/* add the new option to the option list
("null" for IE5, "-1" for all other browsers) */
try
{
document.getElementById("teamsList").add(nextOption, -1);
}
catch(e)
{
document.getElementById("teamsList").add(nextOption, null);
}
}
}
} // end of closure
req.open("GET", "favoriteSport.php?sport=" + sport, true);
req.send(null);
}<br /><br />
는 PHP입니다 :
다음
는 자바 스크립트입니다
<?php
$sport = $_GET["sport"];
$teams = array("basketball" => "Atlanta Hawks, Chicago Bulls, New York Knicks",
"baseball" => "Atlanta Braves, Chicago Cubs, New York Yankees",
"football" => "Atlanta Falcons, Chicago Bears, New York Giants");
return $teams[$sport];
?><br /><br />
... 그리고 여기에 관련 HTML입니다 :
<select onchange = "getTeams(this.value);">
<option>
--select a sport--
</option>
<option value = "basketball">
basketball
</option>
<option value = "baseball">
baseball
</option>
<option value = "football">
football
</option>
</select>
<select id = "teamsList"></select>
무엇 불을 지르고에서 PHP 파일 수익을합니까? 'return'을 사용하고 있습니까? 왜? 'echo'해봐. JSON 사용법을 진지하게 조사해야합니다. –
JSON이 Jquery와 일치하면 DoM 조작이 훨씬 원활 해집니다. (+1 @nav_nav) – ChrisK