2012-04-01 4 views
0

이 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> 
+3

무엇 불을 지르고에서 PHP 파일 수익을합니까? 'return'을 사용하고 있습니까? 왜? 'echo'해봐. JSON 사용법을 진지하게 조사해야합니다. –

+1

JSON이 Jquery와 일치하면 DoM 조작이 훨씬 원활 해집니다. (+1 @nav_nav) – ChrisK

답변

1

그것을 너의 이슈가 h 인 것 같아. 감수 :

return $teams[$sport]; 

는 시도

echo $teams[$sport]; 
+0

하하하! 믿을 수없는, 나는 자바 스크립트의 구석 구석을 들여다 보았다. 정말 고마워! –

+0

PHP (JS)에서 문제가있는 곳을 찾기 위해 PHP 파일 (firebug 포함)의 응답을 항상 확인해야합니다. 기본적인 것들. –

관련 문제