我有一个网页并使用php我查询数据库并在表格中显示结果:
<table id="tablelist">
<thead>
<tr>
<th>Header1</th>
<th>Header2</th>
<th>Header3</th>
</tr>
</thead>
<tbody>
<tr>
<td>Info here1</td>
<td>Info here1</td>
<td class="actions">Action1 - Action2 - Action3</td>
</tr>
<tr>
<td>Info here2</td>
<td>Info here2</td>
<td class="actions">Action1 - Action2 - Action3</td>
</tr>
</tbody>
</table>
现在每一行都有特定于该数据库中该行的唯一信息。例如,主要ID,日期和类别。当有人点击任何行的操作时,我需要获取他们点击的行所特有的2条信息。目前我尝试这样做:
<div class="row_data">{info2 in json format}</div>
<tr>
<td>Info here1</td>
<td>Info here1</td>
<td class="actions">Action1 - Action2 - Action3</td>
</tr>
<div class="row_data">{info2 in json format}</div>
<tr>
<td>Info here2</td>
<td>Info here2</td>
<td class="actions">Action1 - Action2 - Action3</td>
</tr>
因此,当有人点击某个动作链接时,它会获得之前的row_data值,该值为json格式。我将使用jquery来解析json值并使用在其余jquery代码中找到的信息。但我被告知这是无效的HTML,不推荐。当单击一个动作时,每行动态数据的推荐/最佳方式是什么?所以我可以在我的jquery代码中引用它?
答案 0 :(得分:0)
这样做的方法是使用HTML 5的数据属性:
<tr id="foo" data-something="put whatever you want in here">
<!-- content -->
</tr>
然后,您可以使用
访问存储在那里的信息$("#foo").data("something")
data-something
的值可以是您喜欢的任何值(只要它是通过htmlspecialchars
过滤的,如果您直接从PHP回显它),并且如果更方便的话,您可以使用多个数据属性(通常它是。)
此主题还有一个post by John Resig。
答案 1 :(得分:0)
Jon的建议有效,但我讨厌在HTML中嵌入数据,所以我会创建一个从id到数据的JSON映射,并将这些ID添加到TR。从点击处理程序中,您获取TR的ID并从地图中查找数据。
答案 2 :(得分:0)
我觉得我很累,可能误解了这个,所以如果我提出完全错误的话,请原谅...
所以说有人在任何一行点击动作1。也许你会从每个链接上的点击监听器开始,假设你给链接一个叫做“动作”的类......
<tr>
<td class="json_info" style="display:none">{your json string}</td>
<td>Info 1</td>
<td>Info 2</td>
<td><a class="action">action link</a></td>
</tr>
$('.action').click(function(){
var json = $(this).parent().find('.json_info').html();
});
如果json_info的html是格式正确的json字符串,那么它应该能够在jquery选择调用之外被读作json。