将变量保存到 Localstorage,然后发送到 Mysql DB

Save Variables to Localstorage and then send to Mysql DB

首先抱歉我的英语不好,但我希望你能理解我的要求。

我正在开发 Phonegap 应用程序。用户可以通过支付提供商购买 vip 状态。我想使用本地存储和 mysql 但由于缺少我的知识,我遇到了问题。我在谷歌上搜索了很多,但因为一切都是英文的,所以我真的很难学东西。

我想要的是,在下载后 phone 上的第一个应用程序启动时,应用程序会生成一个随机的唯一用户名或数值,并将其作为变量保存在本地存储中。它还应该将一个名为 "vip" 的变量保存到本地存储并将其设置为 0。它需要检查变量是否已经设置,然后应用程序不需要做任何事情。

这些变量应该发送到 mysql table,让我们称之为 "user"。

示例:用户 Table

+---------+-------------+
| username| vip         | 
+---------+-------------+
 A7w893579       0

因此变量保存在本地存储和 mysql 数据库中。 用户通过支付提供商付款后,变量 "vip" 需要设置为 1 并将其获取到正确的用户名,并将 1 保存到用户 table 上的用户的 vip 行中。

我需要任何方法来执行以下功能:如果 vip 状态为 1,则在网站的 iframe vip.html 中显示。如果它的 0 在网站上显示没有vip.html。

你知道我该怎么做吗?我阅读了一些关于 Ajax 调用的内容,但我没有理解正确。如果有人有一些代码片段,我将非常感谢。我不需要完整的代码,我只需要阅读它并尝试理解它。

谢谢!

我不确定你的看法如何,但你可以按照这些步骤做你想做的事。

  1. 应用程序启动时正确加载Cordova。开火 onDeviceReady
  2. 计算您的用户名,任意组合并将它们保存在localStorage
  3. 通过 ajax 调用您的 php 服务器发送用户名和 VIP 状态
  4. 根据您的服务器响应显示用户 iframe 即 vip.html 或无vip.html

第 1 步: 借助以下代码加载 cordova 的所有必需功能。

// this call and loads all cordova function which are required. 
//Device ready is fired when it is loaded successfully.    
    document.addEventListener("deviceready", onDeviceReady, true); 
                // Handle what your application wants to do first
                // Save username and vip status, call ajax using to php server
                function onDeviceReady() {
                    var username="calculate username";
                    var vipStatus=0; //or 1
                    }

第 2 步: 将数据存储在本地存储中。有两种使用本地存储的方法。本机 cordova 的做事方式。

// set value
window.localStorage.setItem("key", "value");
// get value back
var value = window.localStorage.getItem("key");

但我更喜欢直接存储在 localStorage 中,我不使用键值对。它易于存储和访问。

//store in localStorage
localStorage.vipStatus=0; // or 1
// to get back the value
var Status=localStorage.vipStatus;

第 3 步: 向您的 php 服务器发出 ajax 调用。参考 Jquery Ajax here 示例代码如下

$.ajax({
     type: "POST",
     url: "http://localhost:3001/",
     dataType: 'json',
     data: JsonData,
     async: false,
     crossDomain: true,
     success: function(data) {
         alert('success');
     },
     error: function(response, text, err) {
         alert(err);
     }
 });

第四步:根据vip状态显示合适的页面

我认为你需要在一开始就实现所有的东西,所以你应该在 onDeviceReady 中实现它们,如下所示

document.addEventListener("deviceready", onDeviceReady, true);
// Handle what your application wants to do first
// Save username and vip status, call ajax using to php server
function onDeviceReady() {
    // calculate username
    var username = "calculate username";
    // set status
    var vipStatus = 0; //or 1.
    // store in localstorage
    localStorage.vipStatus = vipStatus;
    // set up json i.e send username and vipstatus to server 
    // make ajax call
    $.ajax({
        type: "POST",
        url: "http://localhost:3001/",
        dataType: 'json',
        data: JsonData,
        async: false,
        crossDomain: true,
        success: function(data) {
            alert('success');
            if (status == 0) {
                // its 0 so show novip.html
                window.location.href = "novip.html";
            } else {
                //its 1 so show vip.html
                window.location.href = "vip.html";
            }
        },
        error: function(response, text, err) {
            alert(err);
        }
    });
}