2013-02-04 48 views
0

我有一個基於表的ID一對夫婦條目的盒子:jQuery的可排序的Widget

<ul id="sortable"> 
<?php do { ?> <li class="ui-state-default" id="<?php echo $row_Recordset1['entry']; ?>"> 
    <?php echo $row_Recordset1['PartNo']; ?></li> 
<?php } while ($row_Recordset1 = mysql_fetch_assoc($Recordset1)); ?> 

我已經定義了可排序的jQuery:

$(function() { 
    $("#sortable").sortable(); 
}); 
var newp = $("#sortable").sortable('toArray'); 

,我想要做什麼僅僅是將這個數組傳遞給數據庫上記錄過程中的下一頁:

window.location.href = "quotations_build_itemsorder2.php?newp[]="+newp; 

我不斷收到一個空數組。

幫助....請!

+0

[**在新的代碼,請不要使用'mysql_ *'功能**](也看一看http://bit.ly/phpmsql)。他們不再被維護[並被正式棄用](https://wiki.php.net/rfc/mysql_deprecation)。看到[**紅框**](http://j.mp/Te9zIL)?學習[*準備的語句*](http://j.mp/T9hLWi),並使用[PDO](http://php.net/pdo)或[MySQLi](http://php.net/ mysqli) - [這篇文章](http://j.mp/QEx8IB)將幫助你決定哪個。如果您選擇PDO, [這裏是一個很好的教程](http://stackoverflow.com/a/14110189/1723893)。 –

回答

0

由於newp已經是一個數組,因此您不會將其作爲newp[]傳遞給它,而僅僅是newp

此外,toArray返回一個數組(大概),而不是一個字符串。您不能將它連接到一個字符串。處理這種情況最簡單的方法是將其轉換成JSON:

"...?newp=" + JSON.stringify(newp) 

然後你可以使用json_decode讓你在PHP端陣列。

+0

試過了,我得到NULL –

+0

@JimElliott'JSON.stringify(newp)'包含什麼? –

+0

var newp = $(「#sortable」)。sortable(「serialize」,{key:「sort」}); –

0

看看在sortable("serialize")方法:

var newp = $("#sortable").sortable("serialize") 

您必須根據序列化方法要求(見文檔)格式重命名列表項的ID的。就像這樣:

<?php do { ?> <li class="ui-state-default" id="sort_<?php echo $row_Recordset1['entry']; ?>"> 

編輯:在這個jsfiddle example

+0

我修改了代碼,因爲你建議,但是當我做一個dump_var我得到字符串(15)「[對象對象]」 –

+0

添加{key:「sort」}選項是不必要的。但它仍然不應該顯示[object Object]。請看看我提供的jsiddle例子。 –

+0

通過在頁面上放置一個表單然後分配隱藏變量來獲得它的工作 - var data = $(「#thesort」)。sortable(「serialize」); document.getElementById('newp')。value = data;謝謝! –