您好我正在使用Web系统,我有一个脚本,显示有关公司设备库存的信息。此信息存储在数据库(MySQL)中,并使用HTML表格显示先前存储在PHP变量中的信息,该变量保存查询ResultSet并使用While循环以检索每个值并将其显示在桌子。
此时一切都很完美。
但是我添加了一个搜索按钮,用户可以在其中输入要搜索的设备ID。然后,如果ID存在,我想将RED设置为刚刚找到的ID的行的边框。
问题在于,当我尝试获取要更改的行的ID时,我从Javascript中获取null,这会更改该行的style属性。
我使用While循环生成HTML表,我刚刚声明了2行:
我尝试动态生成第二行的ID(例如,如果有3台计算机,则会有3行具有不同的ID,并且这些ID基于存储在名为变量的变量中的当前ID $ C1)。
然后我只是调用JS发送一个具有要搜索的ID的变量(该ID应该与行的ID相同)并将该行的Background设置为RED。但我得到了错误"无法读取属性' style' of null"。我搜索过,我发现的唯一一件事就是我必须等到文档加载然后调用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";
}
备注:
所以我希望你们能帮助我。感谢。
P.S:我来自墨西哥,这就是var名称是西班牙语的原因,抱歉:)
更新以下是HTML输出:
更新#2 如果我将tr ID更改为 tr id =&#34;行&#34; ,例如,无论我输入什么值(1 ,4或7),第一行总是变红,我没有得到空错误。当然,我不会将任何参数发送给JS,并且在行 document.getelementById 中我将&#34; Row&#34;作为参数。
答案 0 :(得分:-1)
它是$c1
是数值吗?
尝试使用此方法修复:
<tr id="myTr<?php echo $c1; ?>">
...
<script type="text/javascript">
...
remarcarBusqueda('myTr' + <?php echo $_SESSION['VALOR_BUSQUEDA'];?>);
</script>
注意:
在HTML DOM中,所有对象都不应该使用数字作为id,因为Javascript无法访问它。