0

入力フィールドの値を変更するスクリプトがあります。

    <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 } ?>

結果としてレコードが 1 つしかなく、リンクをクリックすると、入力フィールドの値が変更されます。

結果が複数のレコードで構成されている場合、どのリンクをクリックしても、常に最初のレコードから値が取得されます。次に例を示します。

ID: 100
ID: 200
ID: 300

そのため、3 番目の位置をクリックすると、入力フィールドの値が 300 ではなく 100 に変更されます。

これは、すべてのレコードが同じ「ID」を取得するためです...しかし、それでも機能させることはできません。

4

1 に答える 1

1

結果ごとに一意の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
} ?>
于 2013-01-20T23:01:11.810 に答える