Jquery ajax karma dönüş sayfası fragmanı

2 Cevap php

Ben böyle URL'ler bir uygulama var:

domain.com/category1/category2 / vb

Ben ajax # anladığını görmek ve benim php komut dosyası params iletebilirsiniz. Aşağıdaki URL'yi yapmak için ajax bir yol olup olmadığını merak ediyorum:

domain.com / # category1/category2 /

Eğer öyleyse, ben bunu yapmak için jquery kullanabileceğiniz bir işlevi var? Ben jquery Barbekü gördük ama bu bana nasıl yardımcı büyük bir karıştı im var. Daha kolay bir yolu var gibi sadece hash kaldırmak ve benim php komut dosyası için kalan url geçmek, hisseder, daha sonra sayfa fragmanı geri?

Nasıl başlık ve bitişin tazelenmiş olmadan ana sayfa fragmanı dönmek benim php komut dosyası kurmak istiyorsunuz? Ben # veya javascript adı olmuştur algılamak ve daha sonra ilgili fragmanı dönmek gerekir mi?

ben bu şekilde çalışıyorum ama onun Ajax ilanıyla değil: hasher parametre.

<script>
hasher = document.location.hash;
hasher = hash.replace(/^.*#/, '');
$.ajax({ type: 'POST', url: url, data: {ajax:hasher}, dataType: 'html' }); 
</script>
<?php
echo $_POST['ajax'];
?>

Ben yanlış bir şey yapıyorum?

Herhangi Cheers olur

Ke

2 Cevap

Sen (bu standart özellik değil jQuery) document.location.hash özelliğini alarak (# sonra) hash değerini almak ve daha sonra {karma gibi bazı param ile $ ajax çağırarak sunucu tarafı komut dosyası için iletebilirsiniz: belge. . veri location.hash}.

Ben yanlış bir şey yapıyorum?

Evet.

  1. Yerine hasher ikinci satırında karma var kullanarak edilir.
  2. Yanlış regexp: Eğer # sembolü ÖNCE şey bulmak için çalışıyoruz, ama sadece document.location.hash başından # kaldırmak zorunda
  3. Aşağıdaki örnekte içine bir göz atın

    $('a.submit').click(function(){
        var hasher = document.location.hash;
        hasher = (hasher.length>0)?hasher.substr(1):'';
        $.ajax({
            type: 'POST', 
            url: '/test.php', 
            data: {ajax:hasher}, 
            dataType: 'html',
            success:function(response) {
                $('#ajax').html(response)
            }
        }); 
        return false;
    });