首页 > 解决方案 > 获取点击行的ID值 - jquery

问题描述

好的..快速概述。

我有一个表,每一行都有根据 db 记录中的 ID 分配的 ID 属性值

我有一个显示/隐藏 div 的单击事件,我希望它在该 div 中显示的数据基于对应 ID 值的数据库结果

这是我显示 ID 的表格代码

<td class="hidden-xs">
    <a data-toggle="toggle" href="#comp_info" class="showcompinfo" id="<?php echo $complistr['company_id'];?>">
        <?php echo $complistr['registered_office_address'];?>
    </a>
</td>

这是我希望显示数据的地方

<div class="panel-heading">
    <i class="fa fa-building" style="color:orangered"></i>&nbsp;&nbsp;
    <span id="showcompname"></span>
</div>

这是jquery代码

$(document).ready(function () {
    $('#comp_info').hide();
    $('.showcompinfo').click(function () {
        var id = $('.showcompinfo').attr('id');

        $('#comp_info').toggle();
            var companyid = id;
            var dataString = 'companyid=' + companyid;

            $.ajax({ 
                type: 'POST', 
                url: '../inc/dataforms/complist.php', 
                data: dataString, 
                success: function (result) { 
                    $('#showcompname').html(result); 
                }
            });
        });
});

这是查询的 PHP 代码

include('../config.php');
if (!empty($_POST['companyid'])) {
    $companyid = $_POST['companyid'];
    $query = mysqli_query($dbc, "SELECT * FROM `comp_companies` WHERE `company_id` = '$companyid'");
    $result = mysqli_fetch_assoc($query);
    if ($result) {
        echo $result['name'];
    }
}

请不要说..您的代码对SQL注入是开放的..我之前说过它在一个没有外部访问的封闭系统上,使用它的人几乎不能使用PC

我想要做的就是在 showcompname span 框中显示公司名称

如果可能的话,我是否也能够在不同的 div 中显示不同的结果数据?

标签: phpjqueryajax

解决方案


您的问题在于 id 的选择器var id = $('.showcompinfo').attr('id');。您正在选择页面中的每个showcompinfo。

this在该选择器中使用会更好。这将根据单击的 td 正确选择您的 id。

var id = $(this).attr('id');

推荐阅读