2012-04-01 14 views
0

このAjaxはPHPファイルから情報を取得していないため、FirebugのJavascriptを調べると、responseTextが未定義に戻っていることがわかりました。ここ

はJavascriptを次のとおりです。

responseText変数が返されて、なぜ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です:ここで

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でそれは

<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

を試してみてください?あなたは 'return'を使用していますか?どうして? 'echo'を試してみてください。 JSONを真剣に検討してください。 –

+1

JSONがJqueryにマッチするとDoM操作がもっとスムーズになります(+1 @nav_nav) – ChrisK

答えて

1

あなたの問題はh ERE:

return $teams[$sport]; 

は放火犯で、PHPファイルのリターンを何

echo $teams[$sport]; 
+0

ハハハ!信じられないほど、私はJavascriptのすべての隅と隅を調べていた、それが来るのを見ていない。本当にありがとう! –

+0

そのため、PHPファイル(firebug付き)からの応答を常にチェックして、問題がどこにあるかを判断する必要があります(PHPまたはJS)。基本的なもの。 –

関連する問題