2012-08-16 109 views
0

我有这样的情况,想要从mysql检索行id来输入隐藏的元素。让我们来看看脚本无法从mysql检索id到隐藏的输入元素

PHP =>

​​

和JavaScript

<script type="text/javascript"> 
document.getElementById("j").addEventListener("click",function(){ 
    document.a.submit(); 
}); 
</script> 

从这个剧本,我希望,当我点击$row['file_title']必须echo clicked row id但它得到id仅来自第一个元素,并且此ID属于数据库中的最后一行。这里有什么问题,我该如何解决这个问题?谢谢

+1

这里的问题是,你有多个“一”用相同的ID(“J”)和名称(“一些”)标签,假设你的“ tb“表有多行。 这可能是为什么它始终是最后一个条目的ID。 – gabtub 2012-08-16 09:55:59

+0

只是删除JavaScript,然后尝试让提交按钮 – 2012-08-16 09:57:27

+0

现在想起,谢谢,但我怎么知道名称重复是常见的元素,不是吗? (id必须改) – tnanoba 2012-08-16 09:58:24

回答

1

此处while循环每次都会覆盖隐藏元素和链接ID。

while ($row = $r->fetch_assoc()){ 
       echo "<input type='hidden' name='some' value='" . $row['id'] . "'><a href='javascript: void(0)' id='j'>" . $row['file_title'] . "</a><br>"; 
      } 

请看,这里每个链接都有id'j'。每个输入元素都有名字“some”。 更好的是分配这个环节上的一类和追加$行[“身份证”]中隐藏的元素名称,以便使独特的这样的内容:

while ($row = $r->fetch_assoc()){ 
        echo "<input type='hidden' name='some_".$row['id']."' value='" . $row['id'] . "'><a href='javascript: void(0)' class="alink" id='j_".$row['id']."'>" . $row['file_title'] . "</a><br>"; 
       } 

的JavaScript将是这样的:

<script type="text/javascript"> 

document.getElementsByClassName("alink").addEventListener("click",function(){ 
    document.a.submit(); 
}); 

</script> 

其中'链接'是分配给链接的类。

希望,它会帮助你..

+0

这一切都很清楚,但是我怎样才能知道隐藏元素的php值? (在这种情况下,我不知道隐藏元素的确切名称) – tnanoba 2012-08-16 10:54:39

+0

你可以使用jquery选择器来获取它。当你点击一个链接时,这里隐藏的元素就是它的siblig,所以你可以得到那个点击链接的第一个兄弟的名字 – 2012-08-16 11:13:28

+0

你能用例子来展示吗?我不太熟悉jQuery,请事先感谢:) – tnanoba 2012-08-16 11:19:08

0

如何知道脚本点击了哪个链接?所有链接提交相同形式和所有<input> s在您的形式有相同名称! 您可以将每个<input>和相关联的<a>放在一个单独的表格中,或给每个<input>一个唯一的名称。当然,你也必须调整你的JavaScript,因为document.getElementById('j')只会获取第一个链接。