我的jquery不能在我的php while循环中工作

时间:2017-09-04 02:15:03

标签: php jquery

我试图在我的php循环中运行一个javascript但它不起作用, 我想要的是,当我点击带有id检查的按钮时,它将隐藏该按钮并显示id更改但不起作用的按钮 这是我的代码

<?php
$s = mysqli_query($conn, "SELECT * FROM test");
while($d = mysqli_fetch_array($s))
{
    $id = $d['id'];
    echo '      
        <button id="check'.$id.'" onclick="respond('.$n.');">check'.$id.'</button><br>
        <button id="change'.$id.'" style="display:none;">change'.$id.'</button>
    ';
}
?>
<script>
   function respond(username)
   {
        $("#check'"+<?php echo $id; ?>"'").hide();
        $("#change'"+<?php echo $id; ?>"'").show();
        $.post("ana.php",
        {
          username:username
        });
    }
</script>

1 个答案:

答案 0 :(得分:1)

使用jquery的{​​{3}}功能,并使用javascript&#39; click来识别所选行。你不应该有多个函数做同样的事情,1个静态值被改变。这是一个粗略的实现,我认为这将解决您的大部分问题:

<?php
$s = mysqli_query($conn, "SELECT * FROM test");
while($d = mysqli_fetch_array($s))
{
    $id = $d['id'];
    echo '<button class="respond" id="check'.$id.'">check'.$id.'</button><br>
        <button id="change'.$id.'" style="display:none;">change'.$id.'</button>';
}
?>
<script>
    $('.respond').click(function() {
        var id = $(this).attr('id').replace('check', '');
        $("#check" + id).hide();
        $("#change" + id).show();
        $.post("ana.php", {username:username});
    });
</script>

n作为元素中的值存储,并以与获取id相同的方式获取它。