【问题标题】:Jquery Sortable WidgetJquery 可排序小部件
【发布时间】:2013-02-04 14:36:14
【问题描述】:

我有一个框,里面有几个基于表 ID 的条目:

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

我不断得到一个空数组。

帮助....请!

【问题讨论】:

标签: php jquery jquery-ui-sortable


【解决方案1】:

由于newp 已经是一个数组,因此您不会将其传递为newp[],而只是newp

另外,toArray 返回一个数组(大概),而不是一个字符串。您不能将其连接到字符串。处理此问题的最简单方法是将其转换为 JSON:

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

然后您可以使用json_decode 在 PHP 端获取您的数组。

【讨论】:

  • @JimElliott JSON.stringify(newp) 包含什么?
  • var newp = $("#sortable").sortable("serialize", {key: "sort"});
【解决方案2】:

看看sortable("serialize")方法:

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

您必须根据序列化方法所需的格式重命名列表项的 ID(请参阅文档)。像这样:

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

编辑:也看看这个jsfiddle example

【讨论】:

  • 我按照您的建议修改了代码,但是当我执行 dump_var 时,我得到 string(15) "[object Object]"
  • 添加 {key: "sort"} 选项是不必要的。但它仍然不应该显示 [object Object]。请看一下我提供的 jsiddle 示例。
  • 通过在页面上放置一个表单然后分配隐藏变量来使其工作 - var data = $("#thesort").sortable("serialize"); document.getElementById('newp').value = data;谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-01-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多