2013-04-13 2 views
0

J'ai une page qui contient une instance de cartes statiques Google intégrées à un iFrame. Lorsque la page est chargée, l'instance initiale de cet iFrame charge un emplacement défini. Il y a une liste d'adresses sur la page sur laquelle l'utilisateur peut cliquer et en fonction de son choix, l'iFrame avec les cartes Google intégrées est rechargé via AJAX.Espace blanc dans l'URL lors de l'utilisation d'AJAX avec des cartes google statiques

J'ai des problèmes avec le chargement de la nouvelle URL. Ci-dessous le PHP que j'utilise actuellement

$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"; 

Je reçois l'adresse de ma base de données et l'affecte à une variable. Je passe ensuite la variable dans l'URL des cartes statiques.

Avec l'URL définie, j'appelle iFrame

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

Le iFrame ne se charge pas quand je frappe directement la page php ou appelez la page par AJAX. Lorsque je visite la page en utilisant Chrome ou Firefox, je vois la source suivante

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

Si je prends la chaîne src de ce qui précède et charger le lien via le navigateur directement, les charges de carte.

Pourquoi mon iFrame ne se charge-t-il pas?

Mise à jour

Nouveau iFrame HTML après avoir ajouté rawurlencode() pour coder la variable $ adresse

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

Répondre

0

Vous devez coder le adresse_rue, par exemple via rawurlencode()

espaces ne sont pas autorisés dans une URL (il fonctionne lorsque vous utilisez l'URL avec des espaces directement dans un navigateur, car la plupart des navigateurs encode automatiquement les URL)

+0

J'ai ajouté la fonction rawurlencode() pour coder le $ variable d'adresse. J'ai toujours du mal à charger la carte. Le src a maintenant des espaces formatés, mais la carte ne s'affiche toujours pas. Si je copie le lien dans le nouveau src et y accède en utilisant mon navigateur, la carte montre –

+0

** 1er: ** il y a encore des espaces et des sauts de ligne dans l'URL. ** Ensuite: ** Le fichier retourné est une image, pas un document HTML! Et le serveur envoie un 'x-frame-options-header' qui est défini sur ** same-origin **, donc vous ne pouvez pas l'utiliser comme iframe-src. Utilisez un '' au lieu de '