图像中的 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