Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/415.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 Cordova WebSQL-onSubmit_Javascript_Jquery_Cordova_Web Sql - Fatal编程技术网

Javascript Cordova WebSQL-onSubmit

Javascript Cordova WebSQL-onSubmit,javascript,jquery,cordova,web-sql,Javascript,Jquery,Cordova,Web Sql,我是科尔多瓦的新手,目前正在与它合作。我现在正在创建一个登录脚本,但当我提交表单时,数据库似乎不会做出反应 以下是我试图做的: 加载API后,创建一个表并插入一条记录 当用户提交表单时,检查插入的数据是否等于表中的数据 如果匹配,请转到新页面 当我插入了一些无用的东西时,我甚至没有收到警报无效…。我成功了启动应用程序时发出警报 HTML: 解决了!首先,我需要防止提交按钮的默认事件。第二,我认为results.row不够,但如果(results.rows.length>0),这就足够了 我现在使

我是科尔多瓦的新手,目前正在与它合作。我现在正在创建一个登录脚本,但当我提交表单时,数据库似乎不会做出反应

以下是我试图做的:

  • 加载API后,创建一个表并插入一条记录
  • 当用户提交表单时,检查插入的数据是否等于表中的数据
  • 如果匹配,请转到新页面
  • 当我插入了一些无用的东西时,我甚至没有收到警报
    无效…
    。我成功了启动应用程序时发出警报

    HTML:


    解决了!首先,我需要防止提交按钮的默认事件。第二,我认为
    results.row
    不够,但如果(results.rows.length>0),这就足够了

    我现在使用的代码:非常好用

    function check_login() {
            event.preventDefault(); // cancel default behavior
            var username = $("#username").val();
            var password = $("#password").val();
            db.transaction(function(tx) {
                alert(tx + "test");
                tx.executeSql('SELECT * FROM LOGIN WHERE username=? AND password=?', [username, password], function(tx, results) {
                     if (results.rows.length > 0) {
                        window.location = "main.html";
                     } else {
                        alert("Invalid username or password");
                     }
                }, errorCB);
            });
        }
    

    来自文档:对于SQL select语句,rowsAffected始终为0。对于insert或update语句,它返回修改的行数。所以用
    if(results.rows)
    代替.ah thanx!!将更新它,在代码中尝试了它,但是我的代码没有到达if语句。所以问题仍然存在。在执行
    check\u login
    时,控制台中是否出现错误?确保执行了
    功能(发送、结果)
    (您可以通过在其开始处设置
    警报
    ,或将
    null
    替换为
    errorCB
    )来检查它),日志中没有错误。警报输入功能(发送、结果)未执行!即使是errorCB也不会执行hitIs
    检查登录
    ?检查它(通过在此功能开始时设置
    警报
    )。如果没有,请尝试使用
    var db;
    
    function check_login() {
        var username = $("#username").val();
        var password = $("#password").val();
        db.transaction(function(tx) {
            tx.executeSql('SELECT * FROM LOGIN WHERE username=? AND password=?', [username, password], function(tx, results) {
                if (results.rows) {
                    window.location = "main.html";
                } else {
                    alert("Invalid username or password");
                }
            }, null);
        });
    }
    
    // Wait for device API libraries to load
    //
    document.addEventListener("deviceready", onDeviceReady, false);
    
    // device APIs are available
    //
    function onDeviceReady() {
        db = window.openDatabase("Database", "1.0", "Cordova Demo", 200000);
        db.transaction(populateDB, errorCB, successCB);
    }
    
    // Populate the database
    //
    function populateDB(tx) {
        tx.executeSql('DROP TABLE IF EXISTS LOGIN');
        tx.executeSql('CREATE TABLE IF NOT EXISTS LOGIN (id unique, username, password)');
        tx.executeSql('INSERT INTO LOGIN (id, username, password) VALUES (1, "Admin", "Admin")');
    }
    
    // Transaction error callback
    //
    function errorCB(tx, err) {
        alert("Error processing SQL: " + err.code);
    }
    
    // Transaction success callback
    //
    function successCB() {
        alert("success!");
    }
    
    function check_login() {
            event.preventDefault(); // cancel default behavior
            var username = $("#username").val();
            var password = $("#password").val();
            db.transaction(function(tx) {
                alert(tx + "test");
                tx.executeSql('SELECT * FROM LOGIN WHERE username=? AND password=?', [username, password], function(tx, results) {
                     if (results.rows.length > 0) {
                        window.location = "main.html";
                     } else {
                        alert("Invalid username or password");
                     }
                }, errorCB);
            });
        }