0

jQuery UIを使用して、ULのドラッグアンドドロップ関数を作成しています。アイデアは、リスト内のアイテムを並べ替えることができ、ビューの順序がデータベース(機能している)で更新されるということです。私が今追加しようとしている機能は、LIを別のULにドラッグし、データベースを更新して、アプリがLIがどのリストに入るのかを認識できるようにする機能です。アイテムは別のリストに移動できますが、私が投稿したphpファイルはデータベースを更新していません。

PHPファイルは次のようにリストをエコーし​​ます。

<div class="list_div">
    <h3>List #1</h3>
    <ul id="listnumber_25" class="ui-sortable" unselectable="on">
        <li id="item_134">list item 1</li>
        <li id="item_135">list item 2</li>
        <li id="item_136">list item 3</li>
        <li id="item_137">list item 4</li>
    </ul>
</div>
<div class="list_div">
    <h3>List #2</h3>
    <ul id="listnumber_26" class="ui-sortable" unselectable="on">
        <li id="item_138">list item 1</li>
        <li id="item_139">list item 2</li>
        <li id="item_140">list item 3</li>
        <li id="item_141">list item 4</li>
    </ul>
</div>

そして、JSは次のようになります。

//sort / change list
$(document).ready(function(){
    $(".list_div ul").sortable({
        receive: function(event, ui) {
            var list_id = this.id;
            var li_to_reassign = ui.item.attr('id');
            $.post("functions/changelist.php", { li_to_reassign: li_to_reassign, list_id: list_id } );
        }
    });
});

関数/changelist.php:

<?

$list_id = $_POST['list_id'];
$list_id = substr('$list_id', 11); 

$li_to_reassign = $_POST['li_to_reassign'];
$li_to_reassign = substr('$li_to_reassign', 5); 

//------------------------------------------

// connect to DB
$host="localhost"; // Host name 
$username="********"; // Mysql username 
$password="********"; // Mysql password 
$db_name="**********"; // Database name 

// Connect to server and select database.
mysql_connect("$host", "$username", "$password")or die("cannot connect"); 
mysql_select_db("$db_name")or die("cannot select DB");

$sql="UPDATE tasks SET list_id='$list_id' WHERE id='$li_to_reassign'";
$result=mysql_query($sql);

?>

問題が見つからないようです!

4

1 に答える 1

0

phpファイルでは、値を取得していますが、設定されていない$_POST変数を使用して、これらの変数を新しい値で再評価した直後です。$str

$list_id = $_POST['list_id'];
$list_id = $list_id($str, 11); 

$li_to_reassign = $_POST['li_to_reassign'];
$li_to_reassign = $li_to_reassign($str, 5); 

そのはず:

$list_id = $_POST['list_id'];

$li_to_reassign = $_POST['li_to_reassign'];

編集(変数のサブトリングを取得したい場合は、次のような$_POST関数substrを使用してください):

$list_id = $_POST['list_id'];
$list_id = substr($list_id, 11); 

$li_to_reassign = $_POST['li_to_reassign'];
$li_to_reassign = substr($li_to_reassign, 5); 
于 2012-08-08T15:47:59.547 に答える