Pergunta

Precisa de uma maneira de fazer elemento espectáculo no div, mas quando eu uso ajax dados de envio para list.php.it não pode trabalho?

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);
}

?>

mas, o trabalho list.php did't. eu não sei why.could alguém pode me ajudar? THX!

Foi útil?

Solução

Não sei se isso vai ajudar, mas a sua tentativa de atualização em cada evento reordenar única (isto é realmente necessário?).

Pode ser sábio para usar um tempo limite JavaScript para atualizar depois de alguns segundos de tempo ocioso após uma atualização. Eu pessoalmente uso este método e isso torna as coisas executar um suave monte.

Na sua configuração jQuery .sortable () adicione a seguinte:

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

E, em seguida, adicionar var allow_update = null; em algum lugar e um UpdateOrdering função que é chamada quando o tempo limite expirar (no meu caso 3000 ms), com a sua funcionalidade de atualização em lá.

Espero que isso ajude:)

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top