2010-05-10 37 views
43

Der folgende Code zeigt eine Google-Karte und Suchergebnisse an, wenn Sie eine Adresse eingeben und die Senden-Schaltfläche drücken. Ich habe damit gespielt, um zu versuchen und die Seite zu zwingen, vollständig zu erneuern oder neu zu laden, sobald Sie den Absendenknopf schlagen. Aber ich kann es nicht richtig funktionieren lassen. Es lädt die Ergebnisse "in der Seite", aber ich möchte, dass die Seite vollständig aktualisiert wird, wenn die Ergebnisse geladen werden, wie wenn Sie die Zurück-Schaltfläche in Ihrem Browser drücken. Hoffnung, die Sinn macht.Wie erzwinge Seitenaktualisierungen oder Neuladevorgänge in jQuery?

Ich denke, die Antwort liegt in dieser Codezeile, aber ich kenne jquery nicht sehr gut. Es ist in der Nähe der Unterseite des vollständigen Codes unten.

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

Hier ist der vollständige Code unten. Jede Hilfe würde sehr geschätzt werden!

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

?> 

Antwort

127

Sie brauchen jQuery nicht, um dies zu tun. Umfassen Sie die Kraft von JavaScript.

window.location.reload() 

Edit: Dies ist ein weiteres Beispiel dafür, wo einige „jQuery Magie“ wird erwartet, dass Probleme, ohne an die Grundlagen der JavaScript zu lösen, die oft ist die einfachste, schnellste und direkteste Weg, etwas zu tun.

+0

Funktioniert nicht für window.parent.location.reload() –

+3

Nach der Syntax, wäre das nicht: window.parent.window.location.reload()? –

+0

Ich überprüfte das MozDevNet und fand heraus, dass das "Eltern" -Fenster meist nicht über Eltern zugänglich ist, Sie müssen das folgende Attribut verwenden: https://developer.mozilla.org/de/DOM/window.opener Fenster. opener.locaten.reload() Well window.parent gibt den Verweis auf das übergeordnete Fenster bereits zurück, da parent vom Typ window ist. –

19

diese Zeile Ersetzen durch:

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

oder:

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

Hey danke Jungs. Ich bin ein totaler Noob in diesem Zeug, aber wenn ich load() ersetzte; mit window.location.reload(); Die Seite wird beim Laden der Seite kontinuierlich aktualisiert und hört nicht auf. Kannst du mich wissen lassen, wo ich die Änderung mache? – TimMac

+0

onsubmit = "searchLocations (\ ''. $ Categories.'\'); return false;“ Befreien Sie sich von der "return false" –

+0

Danke, aber ich bin immer noch in einer unendlichen Schleife refresh habe ich das Recht..

1

Sie können die Ereignisse aktualisieren, nachdem neue hinzufügen, indem Sie den folgenden Code der Anwendung: -Release die Ereignisse -Set Ereignisquelle -Re-render Events

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

, dass das Problem lösen

Verwandte Themen