我目前正在使用localstorage来存储当前用户访问过的页面:
<?php
//start the session
session_start();
//set $username as the current logged in user
$username=$_SESSION["Username"];
?>
JQuery的:
var journey = JSON.parse(localStorage.getItem('journey'))||[];
journey.push(location.protocol +
'//' + location.host + location.pathname);
localStorage.setItem('journey', JSON.stringify(journey));
目前这是一个临时存储空间,但我也想让他们选择保存他们的旅程。
我如何能够将单个URL以及用户ID(已存储在数据库中)保存到MySQL数据库中?例如表名为“Journey”,列为“URL”和“UserID”。
答案 0 :(得分:1)
您希望对服务器执行Ajax调用。您需要发出Ajax请求,您可以使用Jquery执行此操作。然后,您需要一个服务器端语言(如php)来处理请求并插入数据库。
有一个对php文件执行AJAX调用以插入数据库here的示例。请注意,这不是您在生产环境中执行此操作的方式。但是,理解这个过程是一个很好的教程。
修改强>
根据您在下面的评论,我会进一步解释。上面的例子可以做你想做的事。目前,您的数据位于“客户端”计算机上的javascript中。您想将其传输到mysql数据库。
为此,您将使用JQuery或Javascript发送数据。在示例中,他们在HTML部分中的<script> </script>
标记中使用Javascript。这个javascript代码用于将数据发送到php文件,该文件在此行$q=$_GET["q"];
接收它。然后php函数将此数据插入数据库。
在示例中,他们使用GET
来实现此目的。您可能希望执行POST
请求。查找difference between the two是值得的。
答案 1 :(得分:1)
MySQL旅程表:
CREATE TABLE journey (
userId INT NOT NULL,
journeyUrl VARCHAR(200) NOT NULL,
PRIMARY KEY( userId, journeyUrl ),
FOREIGN KEY( userId ) REFERENCES userTable( userId )
);
插入旅程查询:
$insert_query = "INSERT INTO journey ( userId, journeyUrl ) VALUES ( {$userId} , '{$journeyUrl}' );";
更新旅程查询(如果已存在):
$update_query = "UPDATE journey SET journeyUrl = '{$journeyUrl}' WHERE userId = {$userId};";
您的php脚本会在结果为布尔值的末尾回显结果。真实意味着保存是成功的,假意味着保存是失败的:
echo json_encode($result);
你会有一个php脚本根据表中是否有引用用户的记录来执行这些查询。
像这样的jQuery AJAX函数会调用脚本并保存旅程:
$.ajax({
type: "POST",
url: "savejourney.php",
data: { id : userid, url : journeyUrl },
dataType: "json",
success: function(data) {
if(data) {
alert("Journey saved sucessfully!");
}
}
});