2014-05-04 157 views
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输出:

http://imgur.com/Y262vCe

UPDATE #2例如,如果我将tr ID更改为tr id =“Row”,例如,无论我输入什么值(1,4或7),第一行总是变为红色,而我没有得到空错误。当然,我不会向JS发送任何参数,并在行文件中。getelementById我把“行”作为参数。

+0

在HTML中,所有对象都不应该使用数字作为id,因为Javascript无法访问它。对于你的情况,你可以在字符串前添加一个字符串,比如'”>> –

+0

如果你发布了HTML而不是PHP,你的问题显然是使用JavaScript,而不是PHP。 –

回答

-1

它是$c1是数值吗?

尝试使用此解决:

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

注:

在HTML DOM

,所有的对象不应该使用数字作为标识,因为JavaScript不能访问它。

+0

这是不正确的。示例:http://jsfiddle.net/6N6aa/。更多信息在这里:http://stackoverflow.com/questions/70579/what-are-valid-values-for-the-id-attribute-in-html –

相关问题