2015-09-25 55 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); 


    } 

    ?>