从使用 MySql 创建的表中获取 ROW ID 以与 OnClick 函数一起使用
Posted
技术标签:
【中文标题】从使用 MySql 创建的表中获取 ROW ID 以与 OnClick 函数一起使用【英文标题】:Obtaining ROW ID from a Table created with MySql to use with an OnClick Function 【发布时间】:2011-05-24 21:33:40 【问题描述】:我有一个使用 php 从 Sql 数据库中创建的表,该表成功显示了表信息 使用以下代码示例。
<table class="mytable loottable" id="guildmembers">
<?php
$query = mysql_query("SELECT $member.charname, $member.char_lvl, $trskill.skill_desc, .....
if (mysql_num_rows($query) > 0)
while (false !== ($row = mysql_fetch_assoc($query)))
echo '<tr id="'.$row['charname'].'">'; <-- setting row id here
echo '<td class="lootrow" id="memth1">'.$row['charname'].'</td>';
echo '<td class="lootrow" id="memth2">'.$row['rank_desc'].'</td>';
echo '<td class="lootrow" id="memth3">'.$row['class_name'].'</td>';
echo '<td class="lootrow" id="memth4">'.$row['char_lvl'].'</td>';
echo"</tr>\n";
mysql_free_result($query);
?>
</table>
我已验证每个表行都分配了正确 id 的页面源示例。
<tr id="Calysta"><td class="lootrow" id="memth1">Calysta</td><td class="lootrow" id="memth2">Guild Leader</td><td class="lootrow" id="memth3">Inquisitor</td></tr>
<tr id="Rynanx"><td class="lootrow" id="memth1">Rynanx</td><td class="lootrow" id="memth2">Guild Leader</td><td class="lootrow" id="memth3">Mystic</td>
我将每个表的 ROW ID 设置为始终唯一的第一个字段。然后我正在尝试使用它 以下函数中的 ID,用于在用户单击表格中的一行时将用户重定向到个人资料页面。
<script type="text/javascript">
$(document).ready(function ()
$("table.mytable").each( function()
table = $(this);
if ($(table).attr("id")=="guildmembers")
$(this).click(function()
window.location.href = "http://eq2players.com"+
"/Kithicor/" + $(this).attr("id") + "/";
);
)
);
</script>
哪个应该在浏览器中打开一个新页面,地址如下 点击第一行:“http://everquest2.com/Kithicor/Calysta/”
相反,无论点击哪一行,都会创建 Web url 是“http://everquest2.com/Kithicor/guildmembers/”
这是表格 ID。不是被点击的行的 ID。我尝试了各种解决方案 并且无法弄清楚如何在此点击功能中获取行 ID。对此有任何帮助 非常感激。谢谢。
【问题讨论】:
你在复制id
,检查id="memth1/2/3/4"
之类的东西不应该重复,ID应该总是是唯一的。
【参考方案1】:
给你,刚刚做了这个,改变了一些东西,请注意使用重复的 id 是不好的,你不应该。你的Javascript也过于复杂了:
HTML 示例:
<table class="mytable loottable" id="guildmembers">
<tr class="linkRow" id="test1">
<td>test1</td>
</tr>
<tr class="linkRow" id="test2">
<td>test2</td>
</tr>
<tr class="linkRow" id="test3">
<td>test3</td>
</tr>
</table>
jQuery:
$(document).ready(function ()
$(".linkRow").each( function()
id = $(this).attr("id")
$(this).click(function()
window.location.href = "http://eq2players.com"+
"/Kithicor/" + id + "/";
);
);
);
jsFiddle 链接:
http://jsfiddle.net/TJBX5/
【讨论】:
太好了,我按照您上面的建议进行了一些更改,现在我正在获取行 ID,但不幸的是,无论我单击哪一行,我都只能获取表中最后一行的 ID所以我需要对此做更多的研究。【参考方案2】:您正在桌子上安装点击处理程序。因此,当您调用$(this).attr("id")
时,您是在询问表的ID。您需要在表格的每一行上安装点击处理程序。
【讨论】:
这应该是评论,而不是答案 我现在明白了,谢谢。我是 Unix 系统上的 Cobol 程序员,我正在尝试通过阅读手册自学一些基于 Web 的东西,所以目前我是这类东西的真正新手。以上是关于从使用 MySql 创建的表中获取 ROW ID 以与 OnClick 函数一起使用的主要内容,如果未能解决你的问题,请参考以下文章