Saya ingin menggunakan fungsi jQuery UI sortable
untuk memungkinkan pengguna mengatur pesanan dan kemudian mengubahnya, menuliskannya ke database dan memperbaruinya. Bisakah seseorang menulis contoh tentang bagaimana ini akan dilakukan?
125
toArray
akan memberikan serangkaian id yang diurutkan, saya pikir itu mungkin membantu. api.jqueryui.com/sortable/#method-toArrayJawaban:
Fitur jQuery UI
sortable
menyertakanserialize
metode untuk melakukan ini. Ini cukup sederhana, sungguh. Berikut adalah contoh cepat yang mengirimkan data ke URL yang ditentukan segera setelah elemen memiliki posisi berubah.Apa yang dilakukannya adalah membuat larik elemen menggunakan elemen
id
. Jadi, saya biasanya melakukan sesuatu seperti ini:Saat Anda menggunakan
serialize
opsi, ini akan membuat string kueri POST seperti ini:item[]=1&item[]=2
dll. Jadi jika Anda menggunakan - misalnya - ID database Anda dalamid
atribut, Anda dapat dengan mudah melakukan iterasi melalui array POSTed dan memperbarui posisi elemen yang sesuai. .Misalnya, di PHP:
Contoh di jsFiddle.
sumber
$("#element").children().uniqueId().end().sortable({...
Kupikir ini mungkin bisa membantu juga. A) itu dirancang untuk menjaga payload ke minimum saat mengirim kembali ke server, setelah setiap jenis. (alih-alih mengirim semua elemen setiap kali atau melakukan iterasi melalui banyak elemen yang mungkin dibuang oleh server) B) Saya perlu mengirim kembali id kustom tanpa mengorbankan id / nama elemen. Kode ini akan mendapatkan daftar dari server asp.net dan kemudian setelah menyortir hanya 2 nilai yang akan dikirim kembali: ID db dari elemen yang diurutkan dan id db dari elemen di sebelahnya yang dijatuhkan. Berdasarkan 2 nilai tersebut, server dapat dengan mudah mengidentifikasi posisi baru.
sumber
Anda beruntung, saya menggunakan hal yang tepat di CMS saya
Saat Anda ingin menyimpan pesanan, cukup panggil metode JavaScript
saveOrder()
. Ini akan membuatPOST
permintaan AJAX ke saveorder.php, tapi tentu saja Anda selalu bisa mempostingnya sebagai formulir biasa.Di saveorder.php; Perlu diingat saya menghapus semua verifikasi dan pemeriksaan.
sumber
Ini contoh saya.
https://github.com/luisnicg/jQuery-Sortable-and-PHP
Anda perlu menangkap pesanan di acara pembaruan
sumber
Saya dapat mengubah baris dengan mengikuti jawaban yang diterima dan contoh terkait di jsFiddle. Tetapi karena beberapa alasan yang tidak diketahui, saya tidak bisa mendapatkan id setelah tindakan "hentikan atau ubah". Tetapi contoh yang diposting di halaman JQuery UI berfungsi dengan baik untuk saya. Anda dapat memeriksa tautan itu di sini.
sumber
Coba dengan solusi ini: http://phppot.com/php/sorting-mysql-row-order-using-jquery/ di mana pesanan baru disimpan di beberapa elemen HMTL. Kemudian Anda mengirimkan formulir dengan data ini ke beberapa skrip PHP, dan mengulanginya dengan for loop.
Catatan: Saya harus menambahkan bidang db lain dengan tipe INT (11) yang diperbarui (timestamp'ed) pada setiap iterasi - ini berfungsi untuk skrip untuk mengetahui baris mana yang baru-baru ini diperbarui, atau Anda akan berakhir dengan hasil yang acak.
sumber