php - jquery ajax php - 不止一次运行jquery代码的问题
问题描述
我写了一些代码来建立一个喜欢的帖子。那是当我单击照片以更改图像,并在喜欢的数字中添加一个数字,然后再次单击它时,返回到上一个。我编写的代码对于点击“插入”和“dilite”查询都很有效,当我点击一张照片时,图片会发生变化并且数字会上升,但如果我再次点击,它就不再起作用了我必须刷新页面才能正常工作。索引.php:
<?php
$pgt=1;
$uid=1;
$pst="SELECT * FROM `tbl_users_posts` WHERE id='$pgt'";
$rzp=mysqli_query($conn,$pst);
$rpz=mysqli_fetch_assoc($rzp);
$sid=$rpz['id'];$pos=$rpz['post'];
echo $pos;
?>
<span class="ic_lk ic_">
<?php
$iamlkp="SELECT id FROM `t_plik` WHERE pid='$sid'";
$imlkp=mysqli_query($conn,$iamlkp);
$mylkp=mysqli_num_rows($imlkp);
$iamlkp2="SELECT id FROM `t_plik` WHERE pid='$sid' AND uid='$uid'";
$imlkp2=mysqli_query($conn,$iamlkp2);
$mylkp2=mysqli_num_rows($imlkp2);?>
</span>
<script>
$('document').ready(function(){
var mylk2= <?php echo $mylkp2;?>;
var pgt= <?php echo $pgt;?>;
var uid= <?php echo $uid;?>;
if(mylk2==0) {
$('.ic_lk').html('<img class="li_ik1" src="_pc/lk.png"></img>');
}else if(mylk2>0){
$('.ic_lk').html('<img class="li_ik2" src="_pc/lkm.png"></img>');
}
$(".li_ik1").click(function(){
$.ajax({
url: "ins.php" ,
type: 'POST',
data:{pgt:pgt,uid:uid}
});
$(this).replaceWith('<img class="li_ik2" src="_pc/lkm.png"></img>');
$('.nm_lk').replaceWith('<span class="nm_lk nm_"><?php echo $mylkp+1;?></span>');
});
$(".li_ik2").click(function(){
var mylk2= <?php echo $mylkp2;?>;
var pgt= <?php echo $pgt;?>;
var uid= <?php echo $uid;?>;
var ik1=ik1;
$.ajax({
url: "del.php" ,
type: 'POST',
data:{pgt:pgt,uid:uid,ik1:ik1}
});
$(this).replaceWith('<img class="li_ik1" src="_pc/lk.png"></img>');
$('.nm_lk').replaceWith('<span class="nm_lk nm_"><?php echo $mylkp-1;?></span>');
});
});
</script>
ins.php:
$sid=$_POST['pgt'];
$uid=$_POST['uid'];
if(isset($_POST['pgt'])){
$inpp=mysqli_query($conn,"INSERT INTO t_plik (pid,uid)VALUES('$sid','$uid')");
}
德尔.php:
$sid=$_POST['pgt'];
$uid=$_POST['uid'];
if(isset($_POST['pgt'])){
$inpp=mysqli_query($conn,"DELETE FROM t_plik WHERE pid='$sid' AND uid='$uid'");
}
谢谢
解决方案
这是因为您将onClick
事件绑定到动态创建span
的您应该尝试以下操作
<?php
$pgt=1;
$uid=1;
$pst="SELECT * FROM `tbl_users_posts` WHERE id='$pgt'";
$rzp=mysqli_query($conn,$pst);
$rpz=mysqli_fetch_assoc($rzp);
$sid=$rpz['id'];$pos=$rpz['post'];
echo $pos;
?>
<div id="like_wrapper">
<span class="ic_lk ic_">
</div>
<?php
$iamlkp="SELECT id FROM `t_plik` WHERE pid='$sid'";
$imlkp=mysqli_query($conn,$iamlkp);
$mylkp=mysqli_num_rows($imlkp);
$iamlkp2="SELECT id FROM `t_plik` WHERE pid='$sid' AND uid='$uid'";
$imlkp2=mysqli_query($conn,$iamlkp2);
$mylkp2=mysqli_num_rows($imlkp2);?>
</span>
<script>
$('document').ready(function(){
var mylk2= <?php echo $mylkp2;?>;
var pgt= <?php echo $pgt;?>;
var uid= <?php echo $uid;?>;
if(mylk2==0) {
$('.ic_lk').html('<img class="li_ik1" src="_pc/lk.png"></img>');
}else if(mylk2>0){
$('.ic_lk').html('<img class="li_ik2" src="_pc/lkm.png"></img>');
}
$("#like_wrapper").on('click','span.li_ik1',function(){
$.ajax({
url: "ins.php" ,
type: 'POST',
data:{pgt:pgt,uid:uid}
});
$(this).replaceWith('<img class="li_ik2" src="_pc/lkm.png"></img>');
$('.nm_lk').replaceWith('<span class="nm_lk nm_"><?php echo $mylkp+1;?></span>');
});
$("#like_wrapper").on('click','img.li_ik2',function(){
var mylk2= <?php echo $mylkp2;?>;
var pgt= <?php echo $pgt;?>;
var uid= <?php echo $uid;?>;
var ik1=ik1;
$.ajax({
url: "del.php" ,
type: 'POST',
data:{pgt:pgt,uid:uid,ik1:ik1}
});
$(this).replaceWith('<img class="li_ik1" src="_pc/lk.png"></img>');
$('.nm_lk').replaceWith('<span class="nm_lk nm_"><?php echo $mylkp-1;?></span>');
});
});
</script>
试一试,然后回复我会尝试关注这个帖子。
推荐阅读
- aws-amplify - 从分叉分支构建的 AWS Ampify 控制台预览版
- postgresql - 如何使用 pgAdmin 从 .pg_dump 文件中恢复数据库
- apache-spark - 在笔记本上使用 pyspark 从表中删除行
- javascript - 在循环中,使所有其他值除了匹配条件的值被赋予样式
- java - 当我导入 JPA 注释并仅使用单个休眠属性时,我是否在用例中处理 JPA 或休眠?
- api - 处理 ErrorException (E_NOTICE) 未定义的偏移量:0
- java - 如何通过 Gradle 7.0+ 制作具有依赖关系的 Jar 文件?
- ios - 如何在页脚中使用 segue 将标签数据传递到不同的部分?
- github - 将 slack 与 github 集成以获取推送到特定分支的通知
- c++ - 除了作为 C++ 中的指针之外,char* 还有其他功能吗?