اذهب إلى المحتوى
  • 0

كيف أحفظ ترتيب قائمة ما عن طريق الـ php & JQuery؟

cherire

السؤال

السلام عليكم و رحمة الله و بركاته

اريد حفظ ترتيب القائمة التالية بعد عملية drag and drop

مرفق مثال و جدول القاعدة
و هذا الكود الذي استعمله لإظهار القائمة

 public function test() {
        $choice = Database::getInstance()->query("SELECT * FROM choix WHERE condidat_concour_id = ".$this->data()->ID." ORDER BY ordre ASC");
        foreach($choice->results() as $choi){   
            $cs_code = $choi->cs_code;
            $cs = Database::getInstance()->query("SELECT code,designation,site
                                                        FROM cs 
                                                        WHERE code = '{$cs_code}' ");
           echo "<li id=".$choi->id.">";
           echo "<span class='handle'><i class='fa fa-ellipsis-v'></i><i class='fa fa-ellipsis-v'></i></span>";
           echo "<span class='text'>".$choi->cs_code."</span>";                      
           echo "</li>";
        }
}

حاولت عن طريق اضافة السكريبت التالي

function saveOrder() { v
ar articleorder=""; 
  $("#sortable li").each(function(i) {
    if (articleorder=='') articleorder = $(this).attr('id'); else articleorder += "," + $(this).attr('id'); }); 
       $.post('set_order.php', { order: articleorder }) .success(function(data) { alert('saved'); })
         .error(function(data) { alert('Error: ' + data);
                     });
                     }

و ملف set_order.php

<?php

require_once(core/init.php);

$orderlist = explode(',', $_POST['ordre']); $i = 1 ; foreach ($orderlist as $k=>$order) { $sql = 'UPDATE choix SET ordre = :ordre WHERE id = :id' ; $query = $pdo->prepare($sql); $query->bindParam(':ordre', $i, PDO::PARAM_INT); $query->bindParam(':id', $id, PDO::PARAM_INT); $query->execute(); $i++ ;

}

?>

لكن لم تعمل معي ؟؟ :/

2016-04-30_15-31-38.jpg

2016-04-30_15-32-21.jpg

رابط هذا التعليق
شارك على الشبكات الإجتماعية

Recommended Posts

  • 1

إليك هذا المثال الذي سبق لي التعامل معه، وأتمنى أن يكون مفيداً لك كما هو بالنسبة لي:

في ملف js الخاص بحدث تغيير ترتيب العناصر، أضف حدث الدالة التالي:

 

$("#list").live('hover', function() {
        $("#list").sortable({

            update : function () {

                var neworder = new Array();

                $('#list li').each(function() {    

                    //get the id
                    var id  = $(this).attr("id");
                    //create an object
                    var obj = {};
                    //insert the id into the object
                    obj[] = id;
                    //push the object into the array
                    neworder.push(obj);

                });

                $.post("pagewhereyouuselist.php",{'neworder': neworder},function(data){});

            }
        });
    });

ليتم عند أي تغيير في ترتيب العناصل استدعاء ملف Php التالي المسؤول عن تخزين ترتيب العنصر داخل قاعدة البيانات:

$neworderarray = $_POST['neworder'];
//loop through the list of ids and update your db
foreach($neworderarray as $order=>$id){    
    //إعدادات الاتصال بقاعدة البيانات
    $con = mysql_connect("host","username","password");

    if (!$con){
         die('Could not connect: ' . mysql_error());
    }

    mysql_select_db("my_db", $con);

    mysql_query("UPDATE table SET order = {$order} WHERE id = {$id}");
    mysql_close($con);

}

 

المصدر.

رابط هذا التعليق
شارك على الشبكات الإجتماعية

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...