Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在应用程序开始时检查数据库中的布尔值,然后加载条款和条件页面(如果为false),加载菜单页面(如果为true)_Javascript_Html_Sql - Fatal编程技术网

Javascript 在应用程序开始时检查数据库中的布尔值,然后加载条款和条件页面(如果为false),加载菜单页面(如果为true)

Javascript 在应用程序开始时检查数据库中的布尔值,然后加载条款和条件页面(如果为false),加载菜单页面(如果为true),javascript,html,sql,Javascript,Html,Sql,这可能吗 在加载任何页面之前,我是否可以运行JavaScript代码检查数据库中的值,然后打开相关页面 以下是我目前的代码: function onDeviceReady() //Phone gap is ready { try { db = openDatabase('cuopioid', '1.0', 'cupioids application database', 2 * 1024 * 1024); } cat

这可能吗

在加载任何页面之前,我是否可以运行JavaScript代码检查数据库中的值,然后打开相关页面

以下是我目前的代码:

function onDeviceReady()    //Phone gap is ready
{
    try 
    {
        db = openDatabase('cuopioid', '1.0', 'cupioids application database',
                2 * 1024 * 1024);
    } catch (e) 
    {
        // Error handling code goes here.
        if (e == INVALID_STATE_ERR) 
        {
            // Version number mismatch.
            alert("Invalid database version.");
        }
        else 
        {
            alert("Unknown error " + e + ".");
        }
    }
    console.log("DATABASE Created!");
    db.transaction(createTableTerms, errCB, console.log("MEDICINES Table Created!"));
    $('#btnaccept').on('click', acceptTerms);
}
下面的代码创建了数据库(如果还没有)

我创建了此函数,如果设置为true,则选择数据库中的行,如果结果有1条记录,则我希望它打开菜单页,如果没有结果,则表示之前未接受条款和条件:

function checkTerms(tx)
{
    db.transaction(function(tx) 
    {
        tx.executeSql('SELECT * FROM TERMS WHERE status=1', [],console.log("check terms"), errCB);
    });
    var len = results.rows.length;
    if (len = 1)
    {
        console.log("accepted previously - menu page");
    }
    else
    {
        console.log("termsandconditions page");
    }
}

我不确定这个checkTerms(tx)函数应该放在哪里

我通过创建一个新的JavaScript文件来解决这个问题,该文件在html页面出现时运行(标签的开头)

  • 这将打开数据库
  • 运行SQL查询以查找值
  • 根据结果打开相关页面
当我加载页面时,它仍然显示页面(最多半秒),但它做了我想要的

代码如下:

try 
{
    db = openDatabase('cuopioid', '1.0', 'cupioids application database',
            2 * 1024 * 1024);
} catch (e) 
{
    // Error handling code goes here.
    if (e == INVALID_STATE_ERR) 
    {
        // Version number mismatch.
        alert("Invalid database version.");
    }
    else 
    {
        alert("Unknown error " + e + ".");
    }
}

checkTerms();

function checkTerms(tx)
{
    db.transaction(function(tx) 
    {
        tx.executeSql('SELECT * FROM TERMS WHERE status=1', [], openPage, errCB);
    });
}   

function openPage(tx, results)
{
    var len = results.rows.length;
    if (len = 1)
    {
        getDrugs();
        window.location.href = "#page1"
        console.log("accepted previously - menu page");
    }
    else
    {
        window.location.href = "#page0"
        console.log("termsandconditions page");
    }
}

解决这一问题的另一种方法可能是根据数据库值编写一个php页面作为清算所,然后将用户重定向到相关页面。使用ajax可以做到这一点,用户也不会立即看到错误的页面。

您的应用程序是公开的吗?是的,计划是在用户首次下载应用程序时,他们需要查看条款和条件。一旦他们接受了这些条款和条件,它会将数据库布尔值更新为true。当他们以后使用应用程序时,他们不需要查看条款和条件,它会立即加载菜单页。你不应该将sql查询放在客户端!客户端可以这样做他想要你的数据库做什么都需要离线访问。没有任何信息对客户特别有用。不管怎样,这只是一个用于条款和条件的布尔字段,然后是药物信息,如果他们编辑并破坏了应用程序,这些信息在互联网上都是免费的。这是个问题!哈,这是使用loc艾尔数据库!我的错
try 
{
    db = openDatabase('cuopioid', '1.0', 'cupioids application database',
            2 * 1024 * 1024);
} catch (e) 
{
    // Error handling code goes here.
    if (e == INVALID_STATE_ERR) 
    {
        // Version number mismatch.
        alert("Invalid database version.");
    }
    else 
    {
        alert("Unknown error " + e + ".");
    }
}

checkTerms();

function checkTerms(tx)
{
    db.transaction(function(tx) 
    {
        tx.executeSql('SELECT * FROM TERMS WHERE status=1', [], openPage, errCB);
    });
}   

function openPage(tx, results)
{
    var len = results.rows.length;
    if (len = 1)
    {
        getDrugs();
        window.location.href = "#page1"
        console.log("accepted previously - menu page");
    }
    else
    {
        window.location.href = "#page0"
        console.log("termsandconditions page");
    }
}