2012-07-11 9 views
5

jestem próby następujące:Wyślij AJAX na kliknięcie, ale nadal iść do URL href

Gdy użytkownik kliknie link, chcę zaktualizować konkretną kolumnę określonej tabeli w bazie danych za pośrednictwem ajax. ALE nadal chcę, aby użytkownik został przekierowany do href="<url>" łącza.

Próbowałem jQuery bez return false;, ale ajax nie działa.

Próbowałem z return false;, ale strona oczywiście nie przekierowuje do adresu URL, tak jak chciałem.

Z góry dziękuję za pomoc.

Odpowiedz

11

Wykonaj połączenie AJAX, a następnie ustaw document.location po zakończeniu.

$('a').click(function(e){ 
    var href = this.href; // get href from link 
    e.preventDefault(); // don't follow the link 
    $.ajax({ 
     url: '/path/to/site', 
     data: {some: data}, 
     success: function(){ 
      document.location = href; // redirect browser to link 
     } 
    }); 
}); 
+1

window.location = href; będzie lepiej. Przechowuje historię i myślę, że document.location służy tylko do przekierowania w przeglądarkach gecko (firefox). (nie jestem pewien na ten) – elvispt

+0

dzięki bardzo! – user1519235

+0

Nie ma za co. Cieszę się, że mogłem pomóc :-) –

0

Te operacje należy serializować samodzielnie. W module obsługi zdarzeń najpierw uruchom żądanie AJAX, a następnie wyszukaj kod href w tagu i użyj przekierowania lokalizacji, aby przenieść klienta do tego adresu URL.

0

wpisz kod przekierowania w zwrotnego sukcesu:

$.ajax({ 
    ... 
    success: function(){ 
    $(location).attr('href',url); // You URL inserted 
    } 
}); 
+0

Nigdy nie widziałem '$ (location) .attr ('href', url);' before. Wydaje się działać, ale wolę 'document.location = url;'. Nie wymaga dodatkowego nazywania jQuery. –

+0

@Rocket True. Możliwość, ale twoja odpowiedź może być prostsza. – Steeven

Powiązane problemy