2013-02-04 2 views
0

У меня есть окно с парой записей на основе идентификатора таблицы: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") 

Вы должны будете переименовать корочки элементов списка в соответствии с форматом метод сериализации требует (см документации). Как это:

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

EDIT: Также посмотрите на эту jsfiddle example

+0

Я поменял код так, как вы предлагали, но когда я делаю dump_var, я получаю строку (15) «[object Object]» –

+0

. Добавление опции {key: «sort»} не требуется. Но он все равно не должен показывать [object Object]. Пожалуйста, ознакомьтесь с приведенным мной примером jsiddle. –

+0

Получил работу, разместив форму на странице, а затем назначив скрытую переменную - var data = $ ("# thesort"). Sortable ("serialize"); document.getElementById ('newp'). Value = data; Благодаря! –

Смежные вопросы