改变“value"输入<同时点击查询结果,同时多条记录


Change "value" of a <input> while clicking on query result, while more than one record

我有一个脚本,可以改变输入字段的值:

    <script language="javascript">
    function klientid() {
    var getid = document.getElementById("getidfromsearch");//results
    var klid = document.getElementById("idklienta"); //input field
    if(getid != "0") {
    klid.value = getid.textContent;
    }
    </script>

是一个搜索引擎,结果是这样打印出来的:

    <?php
    while($rowmilion = mysqli_fetch_array($resultmilion)) {
    ?>
    <a href="javascript:klientid()">
    <table>
    <tr>
    <td style="font-weight:bold; width: 160px; text-align:right;">ID:</td>
    <td style="width:200px;" id="getidfromsearch"><?php echo $rowmilion['id']; ?></td>
    </tr>
    </table>
    </a>
    <?php } ?>

现在,当结果只有一条记录并且我单击链接时,它确实改变了输入字段的值

当结果包含多个记录时,无论我单击哪个链接,它总是从第一个记录中获取值,例如:

ID: 100
ID: 200
ID: 300

所以当我点击第三个位置时,它仍然会将输入字段的值更改为100而不是300。

我猜,这是因为所有的记录得到相同的"ID"…但是,我还是做不到。

你应该给每个结果一个唯一的ID,否则它会搞砸你的getElementById搜索。

你的JS代码:
<script language="javascript">
    function klientid(domElmtId) {// ** I added a parameter
        var getid = document.getElementById(domElmtId);//results
        var klid = document.getElementById("idklienta"); //input field
        if(getid !== null) {// ** This is better
            klid.value = getid.textContent;
        }
    </script>

Php代码

<?php
    $count = 0;//** I added a variable to give each result a different ID
    while($rowmilion = mysqli_fetch_array($resultmilion)) {
    ?>
    <a href="javascript:klientid('result<?php echo $count; ?>')">
    <table>
    <tr>
    <td style="font-weight:bold; width: 160px; text-align:right;">ID:</td>
    <td style="width:200px;" id="result<?php ?>"><?php echo $rowmilion['id']; ?></td>
    </tr>
    </table>
    </a>
    <?php 
    $count += 1;//** to make different IDs
} ?>