0
您好我正在使用Web系统,我有一个脚本,用于显示公司中设备库存的相关信息。此信息存储在数据库(MySQL)中,我使用HTML表格显示先前存储在PHP变量中的信息,该变量持有查询ResultSet并使用While循环来检索每个值并将其显示在表中。从HTML/PHP中动态生成的tr元素中获取Id
这一切都是完美的。
但是我添加了一个搜索按钮,用户在其中输入设备的ID进行搜索。然后,如果ID存在,我想设置为RED刚刚找到的ID行的边界。
问题是,当我尝试获取要更改的行的ID时,我从Javascript中更改该行的样式属性获得null。
我使用while循环来生成HTML表,我只是已宣布2行:
- 一个用于表
- 之一的报头,以显示数据。
我试着动态生成第二行的ID(例如,如果有3台计算机,那么将有3行具有不同的ID,并且这些ID基于存储在变量中的当前ID称为$ c1)。
然后,我只是调用JS发送一个具有要搜索的ID的变量(此ID应该与该行的ID相同),并将该行的Background设置为RED。但是我得到了错误“无法读取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";
}
注:
- 我只得到了零误差
所以我希望你们能帮助我。谢谢。
PS:我来自墨西哥,这就是为什么VAR名称是西班牙语,不好意思:)
UPDATE下面是HTML输出:
UPDATE #2例如,如果我将tr ID更改为tr id =“Row”,例如,无论我输入什么值(1,4或7),第一行总是变为红色,而我没有得到空错误。当然,我不会向JS发送任何参数,并在行文件中。getelementById我把“行”作为参数。
在HTML中,所有对象都不应该使用数字作为id,因为Javascript无法访问它。对于你的情况,你可以在字符串前添加一个字符串,比如'
如果你发布了HTML而不是PHP,你的问题显然是使用JavaScript,而不是PHP。 –
回答
它是
$c1
是数值吗?尝试使用此解决:
注:
在HTML DOM,所有的对象不应该使用数字作为标识,因为JavaScript不能访问它。
来源
2014-05-04 08:25:00
这是不正确的。示例:http://jsfiddle.net/6N6aa/。更多信息在这里:http://stackoverflow.com/questions/70579/what-are-valid-values-for-the-id-attribute-in-html –
相关问题