2

我目前正在使用 localstorage 来存储当前用户访问过的页面:

<?php
//start the session 
session_start();
//set $username as the current logged in user
$username=$_SESSION["Username"];
?>

查询:

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”。

4

2 回答 2

2

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 脚本将在结果为布尔值的末尾回显结果。True 表示保存成功,False 表示保存失败:

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!");
        }
    }  
});
于 2012-04-17T14:19:50.887 回答
1

为此,您需要对服务器进行 Ajax 调用。您需要发出 Ajax 请求,您可以使用 Jquery 来完成。然后,您需要一种服务器端语言(例如 php)来处理请求并插入数据库。

这里有一个对 php 文件执行 AJAX 调用以插入数据库的示例。请注意,这不是您在生产环境中执行的方式。然而,这是一个很好的教程来理解这个过程。

编辑

根据您在下面的评论,我将进一步解释。上面的例子确实做了你想做的事。目前,您的数据位于“客户端”机器上的 javascript 中。您想将其传输到 mysql 数据库。

为此,您将使用 JQuery 或 Javascript 发送数据。在示例中,他们在<script> </script>位于 HTML 部分的标记中使用 Javascript。此javascript代码用于将数据发送到php文件,该文件在此行接收它。$q=$_GET["q"];然后php函数将此数据插入数据库。

在示例中,他们使用 aGET来实现此目的。您可能想要执行一个POST请求。看看两者之间的区别是值得的。

于 2012-04-17T14:09:34.813 回答