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

السؤال

نشر

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

اريد حفظ ترتيب القائمة التالية بعد عملية 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.

  • إعلانات

  • تابعنا على



×
×
  • أضف...