2010-05-10 14 views
43

Il codice seguente mostra una mappa di Google e i risultati di ricerca quando si inserisce un indirizzo e si preme il pulsante di invio. Ho giocato con questo per provare e forzare la pagina completamente da aggiornare o ricaricare una volta che si preme il pulsante di invio. Ma non riesco a farlo funzionare correttamente. Carica i risultati "nella pagina", ma mi piacerebbe che la pagina si aggiorni completamente quando i risultati vengono caricati, come quando si preme il pulsante Indietro sul browser. Spero che abbia un senso.Come forzare l'aggiornamento o il ricaricamento della pagina in jQuery?

Penso che la risposta stia in questa riga di codice, ma non conosco molto bene jquery. È vicino alla parte inferiore del codice completo qui sotto.

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

Ecco il codice completo qui sotto. Qualsiasi aiuto sarebbe molto apprezzato!

<?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>'; 

?> 

risposta

127

Non è necessario jQuery per eseguire questa operazione. Abbraccia la potenza di JavaScript.

window.location.reload() 

Edit: Questo è un altro esempio di dove ci si aspetta un po 'di "jQuery magica" per risolvere i problemi senza pensare i fondamenti del JavaScript che è spesso il modo più semplice più veloce e diretto di fare qualcosa.

+0

Non funziona per window.parent.location.reload() –

+3

In base alla sintassi, non lo sarebbe: window.parent.window.location.reload()? –

+0

Ho controllato MozDevNet e ho scoperto che la finestra "genitore" non è accessibile principalmente tramite genitore, devi usare il seguente attributo: https://developer.mozilla.org/en/DOM/window.opener finestra. opener.locaten.reload() Bene window.parent restituisce già il riferimento alla finestra genitore, perché padre è di tipo finestra. –

19

Sostituire questa linea con:

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

o:

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

Hey, grazie ragazzi. Sono un noob totale in questa roba ma quando ho sostituito load(); con window.location.reload(); la pagina si aggiorna continuamente nel momento in cui la pagina si carica e non si ferma. Puoi farmi sapere dove apporto il cambiamento? – TimMac

+0

onsubmit = "searchLocations (\ ''. $ Categories.'\'); return false;" Sbarazzarsi della "return false" –

+0

Grazie, ma io sono ancora in un ciclo di aggiornamento infinita ho fatto questo diritto:..

1

è possibile aggiornare gli eventi dopo l'aggiunta di nuovi applicando il seguente codice: -Release gli eventi -set Origine evento -Re-render Eventi

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

che risolverà il problema

Problemi correlati