从使用 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 函数一起使用的主要内容,如果未能解决你的问题,请参考以下文章

从mysql查询中的表中获取前3名评论员

通过PHP从SQL中的表中获取ID

PHP从获取数组创建一个数组

从具有行号的表中选择到 c# 数据表给出错误

MySql 查询从好友表中获取好友列表

如何从mysql中的表中跳过行