web-dev-qa-db-fra.com

Comment forcer l'actualisation ou le rechargement de page dans jQuery?

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 pour essayer de forcer la page à actualiser ou à recharger complètement une fois que vous avez cliqué sur le bouton d'envoi. 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 se chargent, comme lorsque vous appuyez sur le bouton Précédent de votre navigateur. J'espère que cela a du sens.

Je pense que la réponse se trouve dans cette ligne de code mais je ne sais pas très bien jQuery. 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>';

?>
49
TimMac

Vous n'avez pas besoin de jQuery pour le faire. Embrassez le pouvoir de JavaScript.

window.location.reload()

Remplacez cette ligne par:

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

ou:

$("#someElement").click(function() {
    window.location.reload();
});
21
karim79

Ou mieux

window.location.assign("relative or absolute address");

qui tend à mieux fonctionner sur tous les navigateurs et mobiles

6
WiR3D

Remplacer par:

$('#something').click(function() {
    location.reload();
});
1
user1016195

Vous pouvez actualiser les événements après en avoir ajouté de nouveaux en appliquant le code suivant: -Release the Events -set Event Source -Re-render Events

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

Cela résoudra le problème

1
Jabulani Vilakazi