-3

地図上でクリックされたときに国の名前を取得する JavaScript 関数と、ファイルからランダムに国の名前を取得する PHP スニペットを見つけました。私がやりたいことは、これら 2 つの結果を比較して、ユーザーが質問の上に表示されている国に従って正しい国を地図上でクリックしたかどうかを判断できるようにすることです。それらは正確に単純な変数ではないため、どうすればよいかわかりません.php変数をjavascript変数に割り当てようとしましたが、うまくいきませんでした。任意のガイダンスをいただければ幸いです。

     ....  
        function getCountry(latLng) {
                geocoder.geocode( {'latLng': latLng},
                  function(results, status) {
                    if(status == google.maps.GeocoderStatus.OK) {
                      if(results[0]) {
                        for(var i = 0; i < results[0].address_components.length; i++) {
                          if(results[0].address_components[i].types[0] == "country") {
                            alert(results[0].address_components[i].long_name);
                          }
                        }
                      }
                      else {
                        alert("No results");
                      }
                    }
                    else {
                      alert("Status: " + status);
                    }
                  }
                );
              }


 ....

    Can you locate <?php
        $countries=file("countries.txt");
        $number_countries=count($countries);
        if($number_countries!==0){$number_countries.=-1;};
        $random=rand(0,$number_countries);
        $countryy=$countries[$random];
        echo "$countryy";
        ?>   on the map?
4

1 に答える 1

0

これは悪い習慣です。ajax を使用する必要がありますが、必要なものは次のとおりです。

Can you locate <?php
    $countries=file("countries.txt");
    $number_countries=count($countries);
    if($number_countries!==0){$number_countries.=-1;};
    $random=rand(0,$number_countries);
    $countryy=$countries[$random];
    echo "$countryy";
    ?>   on the map?
    <script type="text/javascript">
       var country = <?php echo json_encode($countryy); ?>

      function getCountry(latLng) {
              geocoder.geocode( {'latLng': latLng},
                function(results, status) {
                  if(status == google.maps.GeocoderStatus.OK) {
                    if(results[0]) {
                      for(var i = 0; i < results[0].address_components.length; i++) {
                        if(results[0].address_components[i].types[0] == "country") {
                           if(results[0].address_components[i].long_name == country) {
                              alert("right");
                           } else {
                              alert("wrong");
                           }
                        }
                      }
                    }
                    else {
                      alert("No results");
                    }
                  }
                  else {
                    alert("Status: " + status);
                  }
                }
              );
      }
  </script>
于 2013-01-24T17:50:55.117 に答える