2016-06-29 40 views
9

Questa è l'ajaxCome cambiare url dopo il successo in Ajax senza ricaricare la pagina

$(".urut").change(function() { 
 
    $.ajax({ 
 
    url: "<?php echo base_url(); ?>categories/brand/<?= $link_brand; ?>?l=<?= $l; ?>&h=<?= $h; ?>&city=<?= $city; ?>&city_name=<?= $city_name; ?>&ket=view", 
 
    type: "POST", 
 
    data: "urut=" + $(".urut").val(), 
 
    success: function(data) { 
 
     $("#result").html(data); 
 
    } 
 
    }) 
 
})

Questo funziona, ma voglio l'url di cambiare perché ho molti parametri lì e, naturalmente, con il parametro data: "urut="+$(".urut").val(),.

+0

se si modifica l'URL, verrà ricaricato. scusa se ho frainteso la tua domanda. se l'ho fatto, per favore chiarire – guradio

+0

Perché dovresti ricaricare una pagina perché hai bisogno di aggiungere più parametri ad una richiesta 'ajax'? Non sono sicuro di capire. (Nota a margine, lo sapevi che puoi passare un oggetto con coppie chiave-valore?) – Assimilater

+2

'history.pushState(). history.replaceState() 'https://developer.mozilla.org/en-US/docs/Web/API/History_API – ArtisticPhoenix

risposta

15

Ora è possibile farlo in maggior parte dei browser "moderni"!

si può fare questo alla tua azione successo:

window.history.pushState("object or string", "Title", "/new-url"); 

Vai a questa questo post per Modify the URL without reloading the page per una base how-to.

nota complementare:

  1. Il primo parametro è il dato ci servirà se lo stato della pagina Web modifiche, per esempio ogni volta che qualcuno preme il tasto indietro o in avanti nel loro browser. Nota che in Firefox questi dati sono limitati a 640k caratteri.
  2. title è il secondo parametro che può essere una stringa, ma al momento di scrittura, ogni browser semplicemente lo ignora.
  3. Questo parametro finale è l'URL che vogliamo visualizzare nella barra indirizzo.
+0

Peccato che ti abbia battuto di circa un minuto :) – ArtisticPhoenix

+1

Haha, hai ragione. non me ne sono accorto prima. : D –

+2

Va bene, nessun problema ... Le grandi menti pensano allo stesso modo. – ArtisticPhoenix

2

provare questo

$(".urut").change(function() { 
$.ajax({ 
    url: "<?php echo base_url(); ?>categories/brand/<?= $link_brand; ?>?l=<?= $l; ?>&h=<?= $h; ?>&city=<?= $city; ?>&city_name=<?= $city_name; ?>&ket=view", 
    type: "POST", 
    data: "urut=" + $(".urut").val(), 
    success: function(data) { 
     $("#result").html(data); 
     window.history.pushState("Details", "Title", "<?php echo base_url(); ?>/yourNewPage"); 
    } 
}); 

});