每个项目的JavaScript和PHP

时间:2018-04-21 10:37:31

标签: javascript php function onclick

   <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。

请帮帮我!!!

2 个答案:

答案 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吗?它不起作用......