簡體   English   中英

jQuery UI接收發布到PHP文件的信息

[英]jQuery UI Receive Post to PHP file

我正在使用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);

?>

我似乎找不到問題!

在您的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); 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM