<a class="glyphicon glyphicon-heart-empty" style="font-size: 50px;color: red" id="'.$item['id'].'" onclick="changeH()"></a>
<script type="text/javascript">
function changeH() {
if (document.getElementById('<?php echo $item['id'];?>').className == "glyphicon glyphicon-heart")
document.getElementById('<?php echo $item['id'];?>').className = "glyphicon glyphicon-heart-empty";
else {
document.getElementById('<?php echo $item['id'];?>').className = "glyphicon glyphicon-heart";
}
}
</script>
我希望在每个项目中显示一个空心而当我在一个项目上爬行时,它会显示一颗完整的心脏。只有当我创建一个字符或整数id时,它才适用于我,但不适用于PHP。
请帮帮我!!!
答案 0 :(得分:0)
你接近这个完全错误。您为每个链接创建了一个新的<script>
代码,并使用特定于您生成的最新链接的新功能覆盖changeH()
功能。
而是尝试这样的事情:
<?php foreach($links as $item): ?>
<a class="glyphicon glyphicon-heart-empty" style="font-size: 50px;color: red" id="<?php echo $item['id']; ?>" onclick="changeH(this);"></a>
<?php endforeach; ?>
<script>
function changeH(link) {
if (link.className == "glyphicon glyphicon-heart") {
link.className = "glyphicon glyphicon-heart-empty";
}
else {
link.className = "glyphicon glyphicon-heart";
}
}
</script>
我建议您阅读MDN上的JavaScript事件处理。 (你也可以更好地实现CSS类的改变,但现在不是这个问题的范围)
答案 1 :(得分:0)
<?php
echo'<script type="text/javascript">
function changeH(link)
{
if(link.className=="glyphicon glyphicon-heart")
link.className="glyphicon glyphicon-heart-empty";
else
{
link.className="glyphicon glyphicon-heart"
';
require 'entities/favoris.php';
require 'core/favorisClass.php';
$f=new favoris(NULL,1,$_POST['h']);
$fC=new favorisClass();
$fC->ajouterF($f);
echo'
}
}
</script>';
?>
我想将它添加到数据库中!! 你知道如何用Javascript编写php吗?它不起作用......