jQuery sıralanabilir güncelleme bir kez sadece çalışabilir?

1 Cevap php

Div elemanı gösterisi yapmak için bir yol gerekir, ama ajax list.php.it veri göndermek kullandığınızda çalışmıyor olabilir?

PHP:

<?php
mysql_connect('localhost','user','password');
mysql_select_db('fruit');
$days = 3;
for($i=1;$i<=$days;$i++)
{
?>



<ul id="sortable">
    <?php
    $sql = "select * from menu where columnNo = '$i' order by orderNo ASC";
    $result= mysql_query($sql);
    //$row=mysql_fetch_assoc($result);
    //print_r($row);
    while($row=mysql_fetch_assoc($result))
    {
    	echo '<li id="list_' . $row['id'] . '">' . $row['title'] . "</li>\n";//
    }

    ?>
    </ul>

<?php
}
?>

jQuery:

$(function(){
     $("ul").sortable({
     	connectWith:"ul",
     	update:function()
     	{	 		
     		serial = $("ul").sortable("serialize");
      		$.ajax({
      			data: serial,	  			 
      			url:"list.php",
      			type:"post",
      			error:function(){
      				alert("Error!");
      			},
      			success:function(data){
      				$("#serverResponse").html(data);
      			}
      		});
     		//alert(serial);
     	}
     });

    $("#sortable").disableSelection();


});

list.php

<?php

mysql_connect('localhost','root','xingxing');
mysql_select_db('fruit');

$list = $_POST['id'];

for($i=0;$i<count($menu);$i++)
{


    $sql =  "update menu set orderNo= '$i' where id = '$menu[$i]'";
    mysql_query($sql);
}

?>

ancak, list.php çalışma did't. Herkes bana yardımcı olabilir why.could ben bilmiyorum? THX!

1 Cevap

Bu yardımcı olacaktır emin, ama senin her sipariş olay üzerinde güncellemeye çalışıyorum değil (bu gerçekten gerekli mi?).

Bir kaç saniye sonra boş zaman after bir güncelleme güncellemek için bir javascript zaman aşımı kullanmak akıllıca olabilir. Ben şahsen bu yöntemi kullanın ve bu işler çok daha düzgün çalışmasını sağlar.

. JQuery sıralanabilir () kurulumunda aşağıdakileri ekleyin:

start: function(event, ui){
    clearTimeout(allow_update);
},
update: function(event, ui){
    allow_update = window.setTimeout(UpdateOrdering, 3000);
}

Ve sonra da güncelleme işlevselliği ile, var allow_update = null; yerde ve zaman aşımı (benim durumumda 3000 ms) dolduğunda adlandırılan bir UpdateOrdering fonksiyonu ekleyin.

Bu yardımcı olur umarım :)