Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/powerbi/2.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的数组中获取select查询的结果_Javascript_Arrays_Sqlite - Fatal编程技术网

无法在带有javascript的数组中获取select查询的结果

无法在带有javascript的数组中获取select查询的结果,javascript,arrays,sqlite,Javascript,Arrays,Sqlite,我在尝试使用java脚本将select查询的结果存储到数组中时遇到问题。 问题是,在函数内部数组包含正确的值,但在外部它是空的,即使我使用了全局变量,它仍然是空的 db.transaction(function (transaction) { var sql = "SELECT * FROM Question where idEnq=" + idEn; transaction.executeSql(sql, undefined, function (transaction, r

我在尝试使用java脚本将select查询的结果存储到数组中时遇到问题。 问题是,在函数内部数组包含正确的值,但在外部它是空的,即使我使用了全局变量,它仍然是空的

db.transaction(function (transaction) {
    var sql = "SELECT * FROM Question where idEnq=" + idEn;

    transaction.executeSql(sql, undefined, function (transaction, result) {
        var res = document.getElementById('results');
        res.innerHTML = "<ul>";
        if (result.rows.length) {
            for (var i = 0; i < result.rows.length; i++) {
                var row = result.rows.item(i);
                ch[i] = new qu(row.id, row.text, row.type);
                res.innerHTML += '<li>' + row.id + '&nbsp;' + ch[i].text + '&nbsp;' + ch[i].type + '</li>';
            }
            tablo = ch;
        } else {
            alert("No choices");
            res.innerHTML += "<li> No choices </li>";
        }

        res.innerHTML += "</ul>";
    }, onError);
}); // here the ch and the tablo array are empty

您正在使用异步函数。任何想要使用这些函数返回的数据的东西都需要在回调中。当然,您可以将此数据分配给一个全局变量,但该变量只有在回调异步运行后才具有该值。

您使用的是异步函数。任何想要使用这些函数返回的数据的东西都需要在回调中。当然,您可以将此数据分配给一个全局变量,但该变量只有在回调异步运行后才具有该值。

您是新手,因此请查看此处
有一部分是关于异步调用JavaScript函数的

您是新手,请看这里
有一部分是关于异步调用JavaScript函数的

您确实需要开始正确地缩进代码!!!不要将idEn直接放在查询文本中,这就是executeSql的第二个参数绑定变量的作用。您确实需要开始正确缩进代码!!!不要将idEn直接放在查询文本中,这就是executeSql的第二个参数bind variables的作用。对不起,我是JS新手,不知道如何使用回调!!移动当前位于db.transaction之后的代码。。。在回调内部调用,即res.innerHTML+=之后;此代码已插入到返回数组的函数中,是否必须按如下方式添加回调参数:函数GetQuestidEn,回调{………..return tablo;}然后呢?我遵循这里给出的答案,但是出现了一个错误,说“uncaughtreferenceerror:callback未定义”,那么我该怎么办?对不起,我是JS新手,不知道如何使用回调!!移动当前位于db.transaction之后的代码。。。在回调内部调用,即res.innerHTML+=之后;此代码已插入到返回数组的函数中,是否必须按如下方式添加回调参数:函数GetQuestidEn,回调{………..return tablo;}然后呢?我遵循这里给出的答案,但是出现了一个错误,说“未捕获引用错误:回调未定义”,那么我应该怎么做??