2010-05-10 2 views
43

Le code ci-dessous affiche une carte Google et les résultats de la recherche lorsque vous entrez une adresse et cliquez sur le bouton Envoyer. J'ai joué avec lui pour essayer et forcer la page à complètement actualiser ou recharger une fois que vous cliquez sur le bouton Soumettre. Mais je ne peux pas le faire fonctionner correctement. Il charge les résultats "dans la page", mais j'aimerais que la page soit complètement actualisée lorsque les résultats sont chargés, comme lorsque vous cliquez sur le bouton "Précédent" de votre navigateur. J'espère que cela a du sens.Comment forcer l'actualisation ou le rechargement de la page dans jQuery?

Je pense que la réponse réside dans cette ligne de code mais je ne sais pas très bien. C'est près du bas du code complet ci-dessous.

<script type="text/javascript"> 
(function($) { 
    $(document).ready(function() { 
     load();'; 

Voici le code complet ci-dessous. Toute aide serait grandement appréciée!

<?php 
/* 
SimpleMap Plugin 
display-map.php: Displays the Google Map and search results 
*/ 
$to_display = ''; 

if ($options['display_search'] == 'show') { 
$to_display .= ' 
<div id="map_search" style="width: '.$options['map_width'].';"> 
    <a name="map_top"></a> 
    <form onsubmit="searchLocations(\''.$categories.'\'); return false;"   name="searchForm" id="searchForm"  action="http://'.$_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI'].'"> 
     <input type="text" id="addressInput" name="addressInput" class="address"  />&nbsp; 
     <select name="radiusSelect" id="radiusSelect">'; 

      $default_radius = $options['default_radius']; 
      unset($selected_radius); 
      $selected_radius[$default_radius] = ' selected="selected"'; 

      foreach ($search_radii as $value) { 
        $r = (int)$value; 
        $to_display .= '<option valu   e="'.$value.'"'.$selected_radius[$r].'>'.$value.' '.$options['units']."</option>\n"; 
      } 

$to_display .= '  
     </select>&nbsp; 
     <input type="submit" value="'.__('Search', 'SimpleMap').'"  id="addressSubmit" class="submit" /> 
     <p>'.__('Please enter an address or search term in the box above.',  'SimpleMap').'</p> 
    </form> 
</div>'; 
} 
if ($options['powered_by'] == 'show') { 
    $to_display .= '<div id="powered_by_simplemap">'.sprintf(__('Powered by %s  SimpleMap', 'SimpleMap'),'<a href="http://simplemap-plugin.com/"  target="_blank">').'</a></div>'; 
} 

$to_display .= ' 
<div id="map" style="width: '.$options['map_width'].'; height:  '.$options['map_height'].';"></div> 

<div id="results" style="width: '.$options['map_width'].';"></div> 

<script type="text/javascript"> 
(function($) { 
    $(document).ready(function() { 
     load();';  

     if ($options['autoload'] == 'some') { 
      $to_display .= 'var autoLatLng = new GLatLng(default_lat,  default_lng); 
      searchLocationsNear(autoLatLng, autoLatLng.lat() + ", " +  autoLatLng.lng(), "auto", "'.$options['lock_default_location'].'", "'.$categories.'");'; 
     } 

     else if ($options['autoload'] == 'all') { 
      $to_display .= 'var autoLatLng = new GLatLng(default_lat,  default_lng); 
      searchLocationsNear(autoLatLng, autoLatLng.lat() + ", " +  autoLatLng.lng(), "auto_all", "'.$options['lock_default_location'].'",  "'.$categories.'");'; 
     } 

$to_display .= ' 
    }); 
})(jQuery); 
</script>'; 

?> 

Répondre

127

Vous n'avez pas besoin de jQuery pour cela. Embrassez la puissance de JavaScript.

window.location.reload() 

Edit: Ceci est un autre exemple où une « jQuery magique » devrait résoudre les problèmes sans penser aux fondamentaux de JavaScript qui est souvent le plus simple, moyen le plus rapide et le plus direct de faire quelque chose.

+0

Ne fonctionne pas pour window.parent.location.reload() –

+3

Selon la syntaxe, n'est-ce pas: window.parent.window.location.reload()? –

+0

J'ai vérifié le MozDevNet et j'ai découvert que la fenêtre "parent" n'est généralement pas accessible par le parent, vous devez utiliser l'attribut suivant: https://developer.mozilla.org/en/DOM/window.opener fenêtre. opener.locaten.reload() Eh bien window.parent renvoie déjà la référence à la fenêtre parente, car parent est de type fenêtre. –

19

Remplacez cette ligne par:

$("#someElement").click(function() { 
    window.location.href = window.location.href; 
}); 

ou:

$("#someElement").click(function() { 
    window.location.reload(); 
}); 
+0

Hey merci les gars. Je suis un noob total pour ce genre de choses mais quand j'ai remplacé load(); avec window.location.reload(); la page se rafraîchit continuellement au moment où la page se charge, et ne s'arrête pas. Pouvez-vous me dire où je fais le changement? – TimMac

+0

onsubmit = "searchLocations (\ ''. $ Categories.'\'); return false; » se débarrasser de la "return false" –

+0

Merci, mais je suis toujours dans une boucle de rafraîchissement infinie Ai-je fait ce droit:..

1

Vous pouvez actualiser les événements après l'ajout de nouvelles en appliquant le code suivant: -Release les événements -set Source de l'événement -Re-rendu des événements

$('#calendar').fullCalendar('removeEvents'); 
        $('#calendar').fullCalendar('addEventSource', YoureventSource);   
        $('#calendar').fullCalendar('rerenderEvents'); 

qui résoudra le problème

Questions connexes