2011-08-17 22 views
15

Küçük bir web radyosu olan bir arkadaşım için bu sayfanın işlevselliğini çoğaltmaya çalışıyorum (http://www.kissfm.ro/fresh-top-40/). Site wordpress adresinde kuruldu.jquery ui-sortable konumlarını DB'ye kaydetme

Sorularım, stackoverflow aradıktan sonra, kullanıcı girdilerine göre gözden geçirilmiş grafikleri nasıl kaydedebilirim/alabilirim? Tek bir alt sürümü nasıl kurtaracağımı buldum, ancak kullanıcı seçimine göre nihai grafikleri nasıl alabilirim?

Şimdiden teşekkürler! (kod ya da eğitime hoş geldiniz!)

cevap

31

HTML sıralamanızı yapın, javascript ekleyin ve güncellemeden php'ye kaydedin.

<ul id="sortable"> 
    <li id="1">elem 1</li> 
    <li id="2">elem 2</li> 
    <li id="3">elem 3</li> 
    <li id="4">elem 4</li> 
</ul> 

$(document).ready(function(){ 
    $('#sortable').sortable({ 
     update: function(event, ui) { 
      var newOrder = $(this).sortable('toArray').toString(); 
      $.get('saveSortable.php', {order:newOrder}); 
     } 
    }); 
}); 
+0

sayesinde! Bu hile yaptı, her bir gönderiyi nasıl kaydedeceğimizi ve medyan değerleri nasıl alacağımızı anlatabilmemiz için bize başka bir gün kazandırdı. – user899163

+4

Sunucudaki verileri değiştirdiğinizden, get yerine bir gönderi mi kullanıyorsunuz? Ayrıca, sunucu kaydetme başarılı olmazsa ne olur? Belki de, beforeStop yöntemini kullanmalı ve sunucu kaydetme başarısız olursa sıralamayı iptal etmeli? – Ryan

4

Bu eski olduğunu biliyorum, ancak yaptığım her LI her bir gizli giriş öğesi eklemek. Hepsinin sonunda [] ile aynı ismi alacaktı. Bu şekilde, UL'yi içeren formu gönderdiğinizde, listenizi koyduğunuz sıraya göre gönderi değerlerinizde bir dizi elde edeceksiniz.

0

Sortable belgelerine göre LI kimliğini bir dizeyle önek olarak eklememiz gerekiyor. Sorguyu güncelleme yönteminde serileştirirsek, php'de güzel bir dizi alırız. NEW_ORDER [] = 1 & NEW_ORDER [] = 2 vs.

var data = $(this).sortable('serialize'); 

<ul id="sortable"> 
    <li id="new_order_1">elem 1</li> 
    <li id="new_order_2">elem 2</li> 
    <li id="new_order_3">elem 3</li> 
    <li id="new_order_4">elem 4</li> 
</ul> 
0
You may POST with input to DB and save it 
Here we go: 
<ul id="sortable"> 
    <li id="1"><input type ="text" value="elem 1"/></li> 
    <li id="2"><input type="text" value="elem 2"/></li> 
    . 
    . 
</ul> 
<style> 
#sortable{ 
    border: hidden; 
} 
</style> 
$(document).ready(function(){ 
    $('#sortable').sortable({ 
     update: function(event, ui) { 
      var newOrder = $(this).sortable('toArray').toString(); 
      $.get('saveSortable.php', {order:newOrder}); 
     } 
    }); 
}); 

Umarım yardımcı olur;)

İlgili konular