无法从mysql中检索id到隐藏的输入元素

时间:2012-08-16 09:51:25

标签: php mysql

我遇到过这种情况,想从mysql中检索行ID以输入隐藏的元素。我们来看看脚本

php =>

<?php
$con = new mysqli("host","user","pswd","db");

if (isset($_POST['some'])){
    echo $_POST['some'];
}

echo "<form name='a' method='post' action='index.php'";

if (!$con->connect_error){
    if ($con->set_charset("utf8")){
        if ($r = $con->query("SELECT * FROM tb")){
            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>";
            }
            $r->free();
        }
    }
}

echo "</form>";
?>

和javascript

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

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

2 个答案:

答案 0 :(得分: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”。 更好的是在这个链接上分配一个类,并在隐藏的元素名称中附加$ row ['id'],以使元素像这样独特:

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>

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

希望,它会帮助你......

答案 1 :(得分:0)

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