自动清理包括表,需要检索所选行的单元格值

时间:2017-12-10 21:21:57

标签: javascript php jquery mysql

我有一个从MySQL中提取的自动刷新表(工作),以便在过去10秒内更新信息。该表位于包含的php文件中,因此我可以使用.load()将其调用以进行刷新。

使用我在互联网上找到的帮助,我能够成功制作一个jquery脚本,突出显示并选择您单击的行。当表格是静态的时候它起作用了,但现在它不再是动态的(自动刷新)。

对JQuery知之甚少,如何保留点击在该数字上的AKA的行的值,因此当用户点击"确认选择"时,该数字将通过提交表格。

例如; 在查看列表时,我看到两个因素:" 0008"和" 0009"。我点击" 0008",表格刷新,0008可能会或可能不在列表中。但是,当我点击它时,它会保留" 0008",所以当我点击"确认选择"时,值" 0008"通过了。

截至目前,警报刚刚弹出并说," undefined"。 (我应该补充一点,我也试过.text()而不是.html())

<script src="java/jquery.js"></script>
<script>
function refreshInfoBox() {
    $('#infobox').load('refreshtable.php');
    setTimeout(refreshInfoBox, 10000);
}
setTimeout(refreshInfoBox, 10000);

$(document).ready(function() {

    refreshInfoBox();

    $("#tableinfo tr").click(function(){
        $(this).addClass('selected').siblings().removeClass('selected');    
        var value=$(this).find('td:first').html();
        });

        $('.select').on('click', function(e){
            alert($("#tableinfo tr.selected td:first").html());
    });
});

</script>
<div id="fixed">

    <?php
        include("topmenu.php");
    ?>

    <div id="backpanel">
        <div id="infobox">
            <?php
                include("refreshtable.php");
            ?>
        </div>
    <input type="button" name="OK" class="select" value="Confirm Selection"/>

    </div>
</div>

refreshtable.php

<table id ="tableinfo">
<tr><th width="12%">ID#</th>
<th width="8%">HEADER2</th>
<th width="40%">HEADER3</th>
<th width="40%">HEADER4</th>
</tr>

$query= $db->prepare("SELECT * FROM dbtable ORDER BY dbtime");
$query->execute();
$count = $query->rowCount();
if($count > 0)
{
    while($info = $query->fetch())
    {
        ?>
        <tr>
            <td><?php echo $info['id']; ?></td>
            <td><?php echo $info['field2']; ?></td>
            <td><?php echo $info['field3']; ?></td>
            <td><?php echo $info['field4']; ?></td>
        </tr>
        <?
    }
}?></table>

1 个答案:

答案 0 :(得分:0)

您的jQuery $("#tableinfo tr").click(function(){绑定到您网页中的DOM元素。不是任何具有该id的DOM元素,而是该元素的显式实例,即当时存在的元素。

当您的刷新脚本运行时,表将替换为新表。它可能与旧表具有相同的ID,但它不是您的函数绑定的表,因此您的函数无法引用它。

您可以每次将函数重新绑定到新表,但更好的方法是只获取您实际需要的数据。

您可以轮询服务器以获取更新,而不是重新加载整个表,将它们作为最小JSON返回,并使用ajax调用的success函数将它们作为新行插入到表中。数据开销会减少,用户体验会更好。

鉴于你对jQuery的了解甚少,但这可能还没有多大意义。以append函数为出发点。