从HTML/PHP中动态生成的tr元素中获取Id
Get Id from tr element dynamically generated in HTML/PHP
嗨,我在一个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.jpgupdat# 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无法访问它。
相关文章:
- 用Javascript添加带有#text的tr元素
- TR 元素上的 UI-sref 不会在新选项卡中打开
- Javascript没有't隐藏tr元素
- Jquery:选择tr元素的第二个td
- 从 jQuery 中的子元素获取父 tr 元素
- 表中的 tr 元素正在丢弃应用于它的顶部 CSS 属性
- 动态计算并显示所有 tr 元素的总和
- 如果选中复选框,则复制TR元素并附加到外部源
- 隐藏tr元素,以防在其中单击
- 获取作为jQuery对象的tr元素的正确顺序
- 在不同数据上使用“tr”元素的undercore模板迭代会给出错误的结果
- 如何删除两个tr元素
- 如何在
和& lt; tr>元素 - 从HTML/PHP中动态生成的tr元素中获取Id
- tr元素不可点击
- 如何使鼠标事件将 TR 元素注册为目标
- 如何为javascript中的每个tr元素指定背景颜色
- Javascript瞄准tr元素
- 基于多个CSS类和来自多个复选框的输入显示/隐藏tr元素
- 如何获得td元素相对于父元素tr元素的偏移量