2015-09-25 1 views
3

Как я могу сделать событие onClick в href в изображении? Я следующий код:Вставить в базу данных при событии 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); 
} 

При нажатии на изображение, Безразлично» t, и я не могу включить мой любимый продукт в базу данных. $ _SESSION & $ _GET работает правильно и functions.php входит в infoproduct.php

Я также попытался поставить в HTML код OnClick = "addfavourite() ;", но ни работы.

+0

Вы не можете запустить функцию PHP из мыши на объект браузера , Вам эфир нужно написать функцию javascript под названием 'addfavourite()', чтобы вызвать скрипт PHP или сделать 'href =" function.php "' – RiggsFolly

+0

Это не сработает, вам нужно посмотреть, как работают JavaScript и PHP. JavaScript является клиентским и не имеет видимости функций PHP, которые являются серверными. 'onClick =" addfavourite() "' вызовет функцию 'addfavourite', которая определена в JavaScript. Если он не определен, вы, вероятно, увидите ошибку в консоли. Единственный способ запуска выполнения PHP с помощью JavaScript - использовать Ajax. Я приглашаю вас прочитать учебники об этом. –

ответ

1

сделать функцию javascript и вызвать страницу php с функцией addfavourite() с помощью AJAX. Когда ответ получен как истинный, вы можете изменить цвет кнопки или звезды на желтый.

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

ИЛИ

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); 


    } 

    ?>