Yapmak için işlevini nasıl ayarlanır kullanıcı değiştirmek için tablo başlığını tıklayın sıralamayı

3 Cevap php

Ben kullanıcı tablo sıralamak için tablo başlığını tıklayın, ama sadece, artan sırasını ayarlayabilirsiniz aynı tablo başlığında azalan sırasını ayarlayabilirsiniz olamaz izin vermek istiyorum. Aşağıdaki Ben kullanılan işlevi,

Sadece işlevini çağırmak için nasıl bilmek istiyorum

function sortDistrictNamedescend($a, $b) { 
    if ($a->DistrictName == $b->DistrictName) { 
        return 0; 
    } 
    return ($a->DistrictName < $b->DistrictName) ? 1 : -1; 
}

Zaten işlevi sortDistrictNameascend diyoruz, ama kullanıcı tablo başlığını tıkladığınızda ben de, tablo sıralama azalan gerekir çünkü.

function sortBy(sKey)
{
   document.sortResultsForm.sSortBy.value=sKey;
   document.sortResultsForm.submit();
}

function sortDistrictNamedescend($a, $b)
{
    if ($a->DistrictName == $b->DistrictName)
    {
        return 0;
    }
    return ($a->DistrictName < $b->DistrictName) ? 1 : -1;
}

function sortDistrictNameascend($a, $b)
{
    if ($a->DistrictName == $b->DistrictName)
    {
        return 0;
    }
    return ($a->DistrictName < $b->DistrictName) ? -1 : 1;
}

if($sSortBy=="District")
{
   usort($tempArr, 'sortDistrictNameascend');
}


<table border="0" width="100%" cellspacing="2" cellpadding="2">
    <tr>
        <td class="headTable" width=15%>
            <a href="javascript:sortBy('District');"><font color=white>District</font</a>
        </td>
        <td class="headTable" width=15%>
            <a href="javascript:sortBy('Group');"><font color=white>Group</font></a>
        </td> 
        <td class="headTable" width=10%>
            <a href="javascript:sortBy('RegID');"><font color=white>RegID</font></a>
        </td> 
        <td class="headTable" width=10%>
            <a href="javascript:sortBy('Name');"><font color=white>Name</font></a>
        </td> 
    </tr>
</table>

3 Cevap

Ne söyleyebilirim itibaren, sunucuya bir AJAX arama yapmak ve html ile yanıt ihtiyacımız olacak. Yanıt ile tablo html değiştirin. Ya da bir yerde yeni düzen ile, click olayı sayfayı yeniden olabilir.

Tabii ki, ben de tüm sunucu tarafında sıralama tablo yapmazdı. Ben varsayılan bir sipariş ile işlemek var bozkır ve değişiklikler yapmak için javascript kullanın. Bu javascript port için sıralama kodu vardır denir ve hangi işlevi geçiş anlamına gelir. Bir boolean değişken veya diğer bazı yaratıcı yöntemler ayarlayarak o değiştirmenizi yapabilirsiniz. Eğer javascript ile istemci tarafında sıralama sorunlar varsa, başka bir soru sormak için çekinmeyin.

Sadece sıralanabilir tablo istiyorsanız, neden bu gibi sadece bitmiş bir komut:

Bu özellikle bir tablonun içeriğini değiştirmek gerekir bu durumda, HTML iletmek için genellikle kötü bir fikir. InnerHTML sadece Tbody okumak (ve ben de masa ve TR düşünüyorum) IE'de bu yana.

I http://www.frequency-decoder.com/2006/09/16/unobtrusive-table-sort-script-revisited gibi bir şey ya da ne Tobix sağlanan kullanmak istiyorsunuz