Javascript 使用Rails和Ajax更新记录数组
假设我们有多个项目列表Javascript 使用Rails和Ajax更新记录数组,javascript,ruby-on-rails,ajax,Javascript,Ruby On Rails,Ajax,假设我们有多个项目列表 <ul data-id="2"> <li> <span>Item name</span> </li> <li> <span>Item name</span> </li> <li> <span>Item name</span> </
<ul data-id="2">
<li>
<span>Item name</span>
</li>
<li>
<span>Item name</span>
</li>
<li>
<span>Item name</span>
</li>
</ul>
我无法将卡阵列输出到任何地方。当我运行console.logcards时;我只是得到[],没有我能理解的数据。我的rails控制台似乎也没有输出任何参数数组
目标是将列表中的所有卡发送到我的rails控制器,并同时更新它们。第一个问题,为什么选择li标签作为可排序标签而不是ul标签 允许对一组DOM元素进行排序 您应该选择ul标签而不是li $'ul'。可排序{ 更新:函数事件,用户界面{ var list_id=$this.data'id'; var cards=$.map$this.find'li',functionel{ 返回{list\u id:list\u id, 订单:$el.index}; }; $.ajax{ url:/cards/, 类型:补丁, 数据类型:json, 数据:{cards:cards}, 成功:functionresp{ 控制台。log'Yay'; } }; } }; 保险商实验室{ 列表样式类型:无; 保证金:0; 填充:0; 宽度:60%; } 李{ 保证金:0 3px 3px 3px; 填充:0.4em; 左侧填充:1.5em; 字号:1.4em; 高度:18px; 边框:1px实心C5C5; 背景:f6f6f6; 字体大小:正常; 颜色:4545; } 项目名称 项目名称2 项目名称3
请完成您的脚本。添加所有涉及的数据,ui来自哪里?对不起,我更新了问题。我正在使用jquerysortable来拖动列表项。当发布列表项时,会调用update函数。最初,我重新创建了标记以简化问题。下面是应用函数的实际标记。我主要感兴趣的是在控制台日志中输出参数,这样我就可以看到我使用的是什么类型的数据/数组,这样我就可以知道如何将其传递给Rails。你能帮忙吗?@colmtuite如果你有问题,你应该用实际的标记向其他人解释,这样人们可以帮助你解决实际问题。您的第一个问题是关于输出卡片的问题。@colmtuite我的脚本中卡片的输出是一个对象数组,可以用rails处理,您试过了吗?而且,您的代码不是gist github中的实际标记,为什么?因为你没有把所有的密码都放进去。
$('li').sortable({
update: function( event, ui ) {
if (this === ui.item.parent()[0]) {
var cards = ui.item.parent('ul li').map(function() {
return {
list_id: $(this).closest('ul').data('id'),
order: $(this).index(),
}
}).get();
$.ajax({
url: "/cards/",
type: "PATCH",
dataType: "json",
data: { cards: cards },
success: function(resp){
console.log('Yay');
}
});
}
}
});