2013-04-13 42 views
0

我有一個頁面,其中嵌入了iFrame中的Google靜態地圖實例。加載頁面時,此iFrame的初始實例加載設置的位置。用戶可以點擊頁面上的地址列表,並根據他們的選擇,嵌入Google地圖的iFrame通過AJAX重新加載。使用Google靜態地圖AJAX時的URL中的空白

我在加載新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頁面的iFrame不加載或通過AJAX調用頁面。當我使用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無法加載?

更新

新的iFrame HTML添加rawurlencode()到$地址變量編碼

<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> 

回答

0

必須編碼後STREET_ADDRESS,例如通過rawurlencode()

空間不是在URL允許

+0

我增加了rawurlencode()函數來編碼$(當您使用空間的網址,直接在瀏覽器中,因爲大多數瀏覽器會自動編碼網址,它的工作原理)地址變量。我仍然無法加載地圖。 src現在已經格式化了空格,但地圖仍然不顯示。如果我在新的src中複製鏈接並使用我的瀏覽器轉到該鏈接,則地圖會顯示 –

+0

**第1次:**網址中仍存在空格和換行符。 **然後:**返回的文件是圖像,而不是HTML文檔!服務器發送一個'x-frame-options-header',它被設置爲**同源**,因此你不能將它用作iframe-src。使用''代替'