如何获得我的信息以显示在链接<a href>或<div>中?

时间:2019-06-04 02:29:33

标签: javascript php jquery html ajax

我遇到的问题是我需要将搜索结果显示在链接或中。现在,它们显示在文本输入字段中。当我尝试将其更改为链接或div时,不会生成任何文本。我几乎可以肯定,这与我拥有的java / jquery脚本有关。我使用的脚本是出于简单原因而需要的开源脚本。

我尝试过的是将脚本要求的元素从输入更改为div或href。我已经搜寻了一下,并试图找到某种参考,脚本选择了哪些元素来显示代码,而我唯一可以识别出问题的是,“ userid = ui.item.value; //选择了ID输入”。

index.php-脚本

<script type="text/javascript">
        $(document).ready(function(){

            $(document).on('keydown', '.username', function() {

                var id = this.id;
                var splitid = id.split('_');
                var index = splitid[1];

                $( '#'+id ).autocomplete({
                    source: function( request, response ) {
                        $.ajax({
                            url: "getDetails.php",
                            type: 'post',
                            dataType: "json",
                            data: {
                                search: request.term,request:1
                            },
                            success: function( data ) {
                                response( data );
                            }
                        });
                    },
                    select: function (event, ui) {
                        $(this).val(ui.item.label); // display the selected text
                        var userid = ui.item.value; // selected id to input

                        // AJAX
                        $.ajax({
                            url: 'getDetails.php',
                            type: 'post',
                            data: {userid:userid,request:2},
                            dataType: 'json',
                            success:function(response){

                                var len = response.length;

                                if(len > 0){

                                    var name = response[0]['name'];
                                    var displayid = response[0]['displayid'];



                                    document.getElementById('name_'+index).value = name;
                                    document.getElementById('displayid_'+index).value = displayid;


                                }

                            }
                        });

                        return false;
                    }
                });
            });

            // Add more
            $('#addmore').click(function(){

                // Get last id 
                var lastname_id = $('.tr_input input[type=text]:nth-child(1)').last().attr('id');
                var split_id = lastname_id.split('_');

                // New index
                var index = Number(split_id[1]) + 1;

                // Create row with input elements
                var html = "<tr class='tr_input'><td><input type='text' class='username' id='username_"+index+"' placeholder='Enter username'></td><td><input type='text' class='name' id='name_"+index+"' ></td><td><input type='text' class='displayid' id='displayid_"+index+"' ></td></tr>";

                // Append data
                $('tbody').append(html);

            });
        });

    </script>

index.php-HTML

    <div class="container">

        <table border='1' style='border-collapse: collapse;'>
            <thead>
            <tr>
                <th>Search</th>    
                <th>Name</th>
                <th>Display ID</th>

            </tr>
            </thead>
            <tbody>
            <tr class='tr_input'>
                <td><input type='text' class='username' id='username_1' placeholder='Enter username'></td>              
                <td><input type='text' class='name' id='name_1' readonly></td>
                <td><input type='text' class='displayid' id='displayid_1' readonly></td>

            </tr>
            </tbody>
        </table>
        <br>
        <input type='button' value='Add more' id='addmore'>
    </div>

getDetails.php

$request = $_POST['request'];   // request

// Get username list
if($request == 1){
    $search = $_POST['search'];

    $query = "SELECT * FROM item_template WHERE name like'%".$search."%'";
    $result = mysqli_query($con,$query);

    while($row = mysqli_fetch_array($result) ){
        $response[] = array("value"=>$row['entry'],"label"=>$row['name']);
    }

    // encoding array to json format
    echo json_encode($response);
    exit;
}

// Get details
if($request == 2){
    $userid = $_POST['userid'];
    $sql = "SELECT * FROM item_template WHERE entry=".$userid;

    $result = mysqli_query($con,$sql);

    $users_arr = array();

    while( $row = mysqli_fetch_array($result) ){
        $userid = $row['entry'];
        $name = $row['name'];
        $displayid = $row['displayid'];


        $users_arr[] = array("entry" => $userid, "name" => $name,"displayid" => $displayid);
    }

    // encoding array to json format
    echo json_encode($users_arr);
    exit;
}

除了选择器在脚本中是错误的之外,我在其中选择将文本复制到的位置。

1 个答案:

答案 0 :(得分:1)

您只需要使用innerHTML而不是value

document.getElementById('name_'+index).innerHTML = name;
document.getElementById('displayid_'+index).innerHTML = displayid;

,然后将input标签更改为div标签。您可能想了解有关innerHTML的更多信息。