2015-09-25 35 views
3

我该怎么做一个图像中的href中的onClick事件?我有以下代码:当图像中出现onclick事件时插入数据库

- infoproduct.php(HTML代码)

<li><a href="#" onClick="addfavourite()"><img src="img/favstar.png" width="32" height="32"></a></li> 

- function.php

function addfavourite() { 

$sql = "SELECT * FROM `users` WHERE `iduser` = '".$_SESSION['id']."'"; 
$result = mysql_query($sql, $db_connection); 
$row = mysql_fetch_assoc($result); 

$newfav = 'INSERT INTO favourites (`iduser`,`idproduct`) VALUES ("'.$row['iduser'].'","'.$_GET['IDp'].'");'; //IDp = ID product obtained from URL 
$createfav = mysql_query($newfav, $db_connection); 
} 

当我在图像上单击它doesn” t工作,我不能在数据库中包含我最喜欢的产品。 $ _SESSION & $ _GET正常工作和functions.php中包括在infoproduct.php

我也试图把HTML代码中的onClick = “addfavourite();” 但既不工程。

+0

不能在浏览器对象上点击运行PHP函数。你以后需要编写一个名为'addfavourite()'的JavaScript函数来调用PHP脚本或者创建'href =“function.php”' – RiggsFolly

+0

这是行不通的,你需要研究JavaScript和PHP的工作方式。 JavaScript是面向客户端的,并且不具有服务器端PHP功能的可见性。 'onClick =“addfavourite()”'将调用JavaScript中定义的潜在'addfavourite'函数。如果没有定义,那么您可能会在控制台中看到错误。 使用JavaScript触发PHP执行的唯一方法是使用Ajax。我邀请你阅读关于它的教程。 –

回答

1

制作一个javascript函数,并在AJAX的帮助下调用具有函数addfavourite()的php页面。 当收到回复为true时,可以将按钮或星形的颜色更改为黄色。

+0

谢谢你!你能告诉我和例子吗?我从来没有使用AJAX代码,我不知道...我想做一个产品的最爱,并插入到我的数据库中点击一个黄色的明星,所以我需要当onClick事件让我这个动作。 – sirketzal

1

我明白你在做什么。你刚刚做的是JavaScript和PHP的组合,但它不是正确的方法。请记住,JavaScript与前端(浏览器和界面)协同工作,php是后端语言。所以你需要一个媒介让他们沟通。我建议你为此使用jquery/json并将其分配给前端。检查:

infoproduct.php

<form action="infoproduct.php" method="POST"> 
<li><a href="#" name="id" onClick="addfavourite()"><img src="img/favstar.png" width="32" height="32"></a></li> 

</form> 

OR

infoproduct.php

<li><a href="#" id="id" onClick="addfavourite()"><img src="img/favstar.png" width="32" height="32"></a></li> 


<script> 
$(document).ready(function(){ 

$('#id').click(function(){ 
var id=$(this).val(); 

$.post('function.php',{id:id},function(data) 
{ 
alert(successfully) 
}) 


}); 

}); 
</script> 

**function.php** 

    <?php 

    //Calling the function 
    addfavourite(); 

    function addfavourite() { 
    $sql = "SELECT * FROM `users` WHERE `iduser` = '".$_SESSION['id']."'"; 
    $result = mysql_query($sql, $db_connection); 
    $row = mysql_fetch_assoc($result); 

    $newfav = 'INSERT INTO favourites (`iduser`,`idproduct`) VALUES ("'.$row['iduser'].'","'.$_GET['IDp'].'");'; //IDp = ID product obtained from URL 
    $createfav = mysql_query($newfav, $db_connection); 


    } 

    ?>