javascript - 当用户点击链接时插入 MySQL 数据库

标签 javascript php mysql

我正在创建一个网站,用户登录并选择他们想要下载的 pdf 文档。当他们打开文档进行查看并可能下载时,我希望同时将数据记录到数据库中。

将数据发送到数据库的代码有效(除了: undefined index :learningMaterial)。但是,当我想要打开 pdf 文档并同时记录用户和其他数据时,所发生的只是文档打开。

任何建议都将不胜感激,即使是总体上更好的方法来实现我在这里想要实现的目标。对 PHP 仍然缺乏经验。

请参阅下面的代码。

HTML

<form name="myform" method='post' action="../includes/writeStats.php">  

<input type='hidden' name='learningMaterial' id='learningMaterial' value='learningMaterial'>

<a href='../documents/test.pdf' id='mylink' class='courses' name='Driver Training'> Driver Training </a>

</form>

JS - 在 header 中

<script type="text/javascript">

function submitform(){
document.myform.submit(); }


var form = document.getElementById("myform");

document.getElementById("mylink").addEventListener("click", function () {
      submitform();
});

</script>

PHP

<?php
$con=mysqli_connect("localhost","root","password","qmptest");
// Check connection
if (mysqli_connect_errno()) {
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}

//Get latest log nr
$result = mysqli_query($con,"SELECT * FROM logbook ORDER BY log DESC LIMIT 1");

while($row = mysqli_fetch_array($result)) {
$log =  $row['log'] + 1;
//If statement to check if log is 0(first entry) to go here
}


$date = date("Y/m/d");

session_start(); // Start a new session

$person = $_SESSION['currentUser'];

//Not sure if this is correct along with my HTML input
$material = mysqli_real_escape_string($con, $_POST['learningMaterial']);


//Insert into database 

$sql="INSERT INTO logbook (log, date, person, learningMaterial)
VALUES ('$log', '$date', '$person', '$material')";

if (!mysqli_query($con,$sql)) {
die('Error: ' . mysqli_error($con));
}


mysqli_close($con);
?>

最佳答案

按照您的方式,单击链接将覆盖正在提交的表单。这会导致文件打开并且表单永远不会通过。

相反,您可以尝试通过向标记添加 target="_blank"在新窗口中打开文件,或者将文件 URL 发送到 PHP,执行数据库代码,然后添加到末尾:

header("Location: http://yourdomain.com/yourfile.pdf");

关于javascript - 当用户点击链接时插入 MySQL 数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24367487/

相关文章:

php - 如何更新一个值,同时又保持另一个值如何MYSQL/PHP

javascript - PHP Codeigniter site_url 产生 HTML 链接错误

php - 网络应用程序 : How to save user's "likes" properly?

php - Moodle - 获取当前用户角色

javascript - 将跨度值推送到数组

javascript - 如何在上传前获取图像的裁剪坐标?

php - Apigility Rest 服务 - 如何使用连接的数据库按非唯一列进行过滤

mysql - 为 postgres 创建 mysqldump

javascript - 延迟或阻止加载,直到 php 脚本/javascript 完全执行

javascript - 从谷歌获取第一张图片