Javascript 在应用程序开始时检查数据库中的布尔值,然后加载条款和条件页面(如果为false),加载菜单页面(如果为true)
这可能吗 在加载任何页面之前,我是否可以运行JavaScript代码检查数据库中的值,然后打开相关页面 以下是我目前的代码: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
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");
}
}