首页 > 解决方案 > php jquery中Active和Deactive更改颜色的问题

问题描述

当我单击活动和非活动时,我想更改 (i) 标记的颜色。

该科尔运行成功,但是当我单击任何(a)标签时,首先更改(a)标签颜色。

我的 CSS

.active{color:green;}
.deactive{color:red;}

我的ajax代码

$('.pactive').click(function(){

var pactiveId = $(this).attr('id');
var currentVal = $(this).find('i').attr('title');
var addCls = 'active';
var removeCls = 'deactive';
var title = 'Active';
if(currentVal == 'Active'){
  addCls = 'deactive';
  removeCls = 'active';
  title = 'Deactive';
}

$(this).find('i').addClass(addCls).removeClass(removeCls);
$(this).find('i').attr('title',title);



$.post('controller/ajax-product-active.php?pactiveId='+pactiveId,
{},function(data)
{  
$('#product-active').html(data);


});

});

ajax-product-active.php

$pactiveId = $_GET['pactiveId'];
$checkstatus = mysqli_query($conn,"select * from products where id = '{$pactiveId}'");
 while($prow = mysqli_fetch_array($checkstatus))
 {
 if ($prow['status']=='Active') {

    $update_status = mysqli_query($conn,"update products set status = 'Deactive' where id = '{$pactiveId}'");

    echo "<a id='$prow[id]' class='pactive' style='cursor: pointer;'>
                    <i class='fa fa-circle active' aria-hidden='true' title='Active'></i></a>";


}
elseif ($prow['status']=='Deactive') {

    $update_status = mysqli_query($conn,"update products set status = 'Active' where id = '{$pactiveId}'");

    echo "<a id='$prow[id]' class='pactive' style='cursor: pointer;'>
                    <i class='fa fa-circle deactive' aria-hidden='true' title='Deactive'></i></a>";
}
}

此代码运行成功,但是当我单击任何(a)标签时,第一个(a)标签上的颜色也会改变。我只想在单击哪个(a)标签时更改这个(a)标签的颜色。请帮忙

标签: phpjquerycssajaxmysqli

解决方案


我认为您需要在anchor标签中添加类而不是i如下所示:-

jQuery:-

$(this).find('a').addClass(addCls).removeClass(removeCls);

PHP:-

echo "<a id='$prow[id]' class='pactive active' style='cursor: pointer;'>
                    <i class='fa fa-circle' aria-hidden='true' title='Active'></i></a>";

推荐阅读