图像中的 onclick 事件时插入数据库

Posted

技术标签:

【中文标题】图像中的 onclick 事件时插入数据库【英文标题】:Insert into database when onclick event in an image 【发布时间】:2015-12-23 04:42:54 【问题描述】:

如何在图像的 href 中创建 onClick 事件?我有以下代码:

- infoproduct.php(html代码)

<li><a href="#" onClick="addfavourite()"><img src="img/favstar.png"  ></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);

当我点击图片时,它不起作用,我无法在数据库中包含我最喜欢的产品。 $_SESSION & $_GET 工作正常,functions.php 包含在 infoproduct.php 中

我也尝试在 html 代码 onClick="addfavourite();" 中输入,但都不起作用。

【问题讨论】:

您不能通过单击浏览器对象来运行 PHP 函数。您需要编写一个名为addfavourite()javascript 函数来调用PHP 脚本或制作href="function.php" 这行不通,你需要看看 JavaScript 和 PHP 是如何工作的。 JavaScript 是客户端的,无法看到服务器端的 PHP 功能。 onClick="addfavourite()" 将调用在 JavaScript 中定义的潜在 addfavourite 函数。如果未定义,那么您可能会在控制台中看到错误。使用 JavaScript 触发 PHP 执行的唯一方法是使用 Ajax。我邀请您阅读有关它的教程。 【参考方案1】:

我明白你在做什么。您刚刚所做的是 javascript 和 php 的组合,但这不是正确的方法。请记住,javascript 适用于前端(浏览器和界面),而 php 是一种后端语言。所以你需要一个媒介让他们交流。我建议您为此使用 jquery/json 并将 an 分配给前端。检查这个:

infoproduct.php

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

</form>

infoproduct.php

  <li><a href="#" id="id" onClick="addfavourite()"><img src="img/favstar.png"  ></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);


    

    ?>

【讨论】:

【参考方案2】:

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

【讨论】:

谢谢!你能告诉我和例子吗?我从来没有使用过 AJAX 代码,我也不知道...我想收藏一个产品并单击黄色星号插入我的数据库,所以我需要 onClick 事件让我执行此操作。

以上是关于图像中的 onclick 事件时插入数据库的主要内容,如果未能解决你的问题,请参考以下文章

数据库中的成功快照表。但是当有事件插入、更新或删除时不能CDC

js 常用事件句柄总结

如何在单击按钮时将数据插入数据库?

为 MYSQL 数据库插入特定图像

如何使用 mysql 数据库中的存储过程在数据库中插入图像 url?

Codeigniter上传:插入数据库时​​图像的文件名返回null