从HTML/PHP中动态生成的tr元素中获取Id

Get Id from tr element dynamically generated in HTML/PHP

本文关键字:tr 元素 Id 获取 HTML PHP 动态      更新时间:2023-09-26

嗨,我在一个Web系统上工作,我有一个脚本,显示有关公司设备库存的信息。该信息存储在数据库(MySQL)中,我使用HTML表来显示先前存储在PHP变量中的信息,该变量持有查询ResultSet,并使用While循环来检索每个值并在表中显示它。

现在一切都很完美。

但是我增加了一个搜索按钮,用户可以在其中输入设备的ID进行搜索。然后,如果ID存在,我想将刚刚找到ID的行边框设置为红色。

问题是,当我试图获得要更改的行ID时,我从Javascript中获得null,这改变了该行的样式属性。

我使用While循环生成HTML表,我刚刚声明了2行:

  • 表头
  • 一个显示数据。

我尝试动态地为第二行生成ID(例如,如果有3台计算机,那么将有3行具有不同的ID,这些ID基于存储在名为$c1的变量中的当前ID)。

然后我只是调用JS发送一个变量,有ID搜索(这个ID应该是相同的行ID),并设置该行的背景为红色。但我得到了错误"无法读取属性' null style'"。我已经搜索,我发现的唯一一件事是,我必须等到文档加载,然后调用Js来搜索元素,但它没有工作。

PHP

    <table>
            <tr>
                <td>ID del Equipo</td>
                <td>Tipo</td>
                <td>Marca</td>
                <td>Modelo</td>
                <td>Procesador</td>
                <td>Memoria Ram</td>
                <td>Detalles</td>
                <td>Area</td>
            </tr>
            <?php
            $i = 0;
            while ($i<$num) 
            {
                $c1 = mysql_result($result, $i, "ID del Equipo");
                $c2 = mysql_result($result, $i, "Tipo");
                $c3 = mysql_result($result, $i, "Marca");
                $c4 = mysql_result($result, $i, "Modelo");
                $c5 = mysql_result($result, $i, "Procesador");
                $c6 = mysql_result($result, $i, "Memoria RAM");
                $c7 = mysql_result($result, $i, "Detalles");
                $c8 = mysql_result($result, $i, "Area");
            ?>
            <tr id="<?php echo $c1; ?>">    
                <td><?php echo $c1;?></td>
                <td><?php echo $c2;?></td>
                <td><?php echo $c3;?></td>
                <td><?php echo $c4;?></td>
                <td><?php echo $c5;?></td>
                <td><?php echo $c6;?></td>
                <td><?php echo $c7;?></td>
                <td><?php echo $c8;?></td>
            </tr>
            <?php 
             $i++;
            }
            ?>
        </table>
</section> //The end of the section where the info is displayed
        <script type="text/javascript">
        remarcarBusqueda(<?php echo $_SESSION['VALOR_BUSQUEDA'];?>);
        //The $_SESSION ['VALOR_BUSQUEDA'] holds the value (ID) of the 
        //element to search that has been already checked in another script
        </script>
JavaScript

function remarcarBusqueda(elemento)
{
    rem = document.getElementById(elemento);
    rem.style.background="red";
} 

指出:

  • 我只得到null错误

所以我希望你们能帮助我。谢谢。

p。S:我来自墨西哥,这就是为什么变量名是西班牙语的原因,抱歉:)

UPDATE下面是HTML输出:

https://i.stack.imgur.com/ZU4Fs.jpg

updat# 2如果我将tr ID更改为tr ID ="Row",例如,无论我输入什么值(1,4或7),第一行总是得到红色,并且我没有得到null错误。当然,我不发送任何参数到JS,并在行文档。getelementById i put "Row"作为参数

$c1是数值吗??

试着用这个修复:

<tr id="myTr<?php echo $c1; ?>">
...
<script type="text/javascript">
...
    remarcarBusqueda('myTr' + <?php echo $_SESSION['VALOR_BUSQUEDA'];?>);
</script>

注意:

在HTML DOM中,所有对象都不应该使用数字作为id,因为Javascript无法访问它。