0

iFrame に埋め込まれた Google 静的マップのインスタンスを含むページがあります。ページが読み込まれると、この iFrame の最初のインスタンスが設定された場所を読み込みます。ユーザーがクリックできるページにはアドレスのリストがあり、その選択に基づいて、Google マップが埋め込まれた iFrame が AJAX を介して再ロードされます。

新しい URL の読み込みに問題があります。以下は私が現在使用しているPHPです

$database->mysqlquery("SELECT street_address
                       FROM favorites
                       WHERE id = $row_id");

while($row = mysql_fetch_array($database->results)){
    $address = $row[street_address];
}

$url = "http://maps.googleapis.com/maps/api/staticmap?center=$address&zoom
=18&size=640x640&sensor=false";

データベースからアドレスを取得し、変数に割り当てます。次に、変数を静的マップの URL に渡します。

URL を定義して、iFrame を呼び出します

<iframe width = "425" height = "315" frameborder = "0" scrolling = "no" 
marginheight = "0" marginwidth = "0" src= "<?php echo $url; ?>" id = "iframe"></iframe>

PHPページに直接アクセスしたり、AJAXを介してページを呼び出したりすると、iFrameがロードされません。Chrome または Firefox を使用してページを調べると、次のソースが表示されます

<iframe width="425" height="315" frameborder="0" scrolling="no" 
marginheight="0" `marginwidth="0" 
src="http://maps.googleapis.com/maps/api/staticmap?center=116 Ponce De Leon Ave 
NE, Atlanta, GA&amp;zoom=18&amp;size=640x640&amp;sensor=false" id="iframe"></iframe>

上記の src 文字列を取得し、ブラウザーからリンクを直接読み込むと、マップが読み込まれます。

iFrame が読み込まれないのはなぜですか?

アップデート

$address 変数をエンコードする rawurlencode() を追加した後の新しい iFrame HTML

<iframe width="425" height="315" frameborder="0" scrolling="no" marginheight="0" 
marginwidth="0" 
src="http://maps.googleapis.com/maps/api/staticmap? 
center=116%20Ponce%20De%20Leon%20Ave%20NE%2C%20Atlanta%2C%20GA&amp;
zoom=18&amp;size=640x640&amp;sensor=false" id="iframe"></iframe>
4

1 に答える 1

0

street_address をエンコードする必要があります。rawurlencode()

URL にスペースを使用することはできません (ほとんどのブラウザーは URL を自動的にエンコードするため、ブラウザーでスペースを含む URL を直接使用すると機能します)。

于 2013-04-13T22:15:02.560 に答える