【发布时间】:2016-05-17 11:25:18
【问题描述】:
我感到非常愚蠢和羞愧。刚开始学习jQuery,第一天就卡住了。基本上,我正在用 ruby on rails 构建所有这些,并且我有一个客户列表,其中包含姓名、地址、电话号码等基本信息。下图中是我的页面布局(是的,我知道.. 天生的艺术家)。
在左表中,我显示了我在数据库中拥有的所有客户,第一列代表客户的 ID,第二列显示他们的名称。在右表(它是部分表)中,我显示了完整的客户信息。 我的目标是:通过点击左侧表格中的行,右侧表格将更新并显示与我选择的客户相关的信息。 这是我尝试过的:
<script>
$('#table_clients tbody').on('click', 'tr', function() {
$("#container_info").replaceWith(
'<%= j render :partial => "client_info", :locals => {:client => 1} %>'
);
});
</script>
请注意,我手动指定了客户端的 ID。 我的问题是,如何识别我选择的行并将 ID 传递给 erb 片段?
我可以通过调用这个来获取 ID:
$(this).find(':nth-child(0)').text();
但不知道如何在 erb 片段中传递它。解决这个问题的方法是什么? 可能有比使用 replaceWith 方法更好的方法,这是我得到的第一个想法。
【问题讨论】:
-
在你的 tr 或类中添加一个
data-*标签,其中将包含客户端的 id(假设你的表是从 db 生成的),所以你可以参考它。跨度> -
好的。我熟悉 data-* 标签。但是想象一下,对于每一行,我都有它。 (data-client_1、data-client_2、data-client_3 等。)然后呢?如何将 id 传递给部分?抱歉,我一定看不清楚。
-
我的建议是,对于每一行(
tr、li等)添加 data-id=$row_id(来自php侧) ,然后单击将其读回为var client_id = $(this).data('id');。也许我没有给出好的建议.. -
这是一个明智的建议,真的。我什至可能会实现这一点。但是从 Rails 方面来看,我不确定如何传递该 ID。获取 ID 很容易,我有我的方式和你的方式(谢谢),但不知道如何将它传递给 erb 的东西。
-
在
Ruby方面,你完全了解了我,我对此一无所知。对不起。
标签: javascript jquery ruby-on-rails ajax