Получение идентификатора ROW из таблицы, созданной с помощью MySql, для использования с функцией OnClick - PullRequest
2 голосов
/ 13 декабря 2010

У меня есть таблица, созданная с помощью 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>

Пример источника страницы, где я проверил, что каждой строке таблицы присвоен правильный идентификатор.

<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>

Я устанавливаю идентификатор строки каждой таблицы в первое поле, которое всегдауникальный.Затем я пытаюсь использовать этот идентификатор в следующей функции для перенаправления пользователей на страницу профиля, когда они нажимают на строку в таблице.

    <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/"

Вместо этого, независимо от того, по какой строке щелкают, создается созданный веб-URL« http://everquest2.com/Kithicor/guildmembers/"

, который является идентификатором таблицы.не идентификатор строки, по которой щелкают.Я пробовал различные решения и не могу понять, как получить идентификатор строки в этой функции щелчка.Любая помощь с этим будет высоко ценится.Спасибо.

Ответы [ 2 ]

1 голос
/ 13 декабря 2010

Вот, пожалуйста, только что сделал это быстро, изменил некоторые вещи, пожалуйста, будьте внимательны с использованием дублированного идентификатора его ПЛОХО, вы не должны.Также вы слишком усложнили свой 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 Link:

http://jsfiddle.net/TJBX5/

0 голосов
/ 14 декабря 2010

Вы устанавливаете свой обработчик кликов на столе. Поэтому, когда вы звоните $(this).attr("id"), вы запрашиваете идентификатор таблицы. Вам необходимо установить обработчик кликов в каждой строке таблицы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...