代码之家  ›  专栏  ›  技术社区  ›  Ritesh Sachan

使用javascript在数据库(浏览器数据库)中插入日期

  •  0
  • Ritesh Sachan  · 技术社区  · 6 年前

    我一直在为一个大学项目工作,我需要使用日期并将它们输入到数据库中(Chrome浏览器中的内置项目)。具体来说,我将从用户那里获取一个日期并将其输入数据库。

    HTML代码如下:

    <html>
    <head>
      <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.0/jquery.min.js"></script>
    </head>
    <body>
      <input type="date" id="dt">
      <input type="button" id="submit" value="INSERT DATE">
    </body>
    <script type="text/javascript" src="js/index.js"></script>
    </html>
    

    以及javascript:

    var db = openDatabase("Dates", "1.0", "Test Dates", 200000);
    var createStatement = "CREATE TABLE IF NOT EXISTS Date (sampledate DATE)";
    var insertStatement = "INSERT INTO Date (sampledate) VALUES (?)";
    
    db.transaction(function(tx) {
      tx.executeSql(createStatement, []);
    });
    
    $(document).ready(function() {
      $("body").fadeIn(2000);
      $("#submit").click(insertdate);
    });
    
    function insertdate() {
      var datetemp = $("#dt");
      db.transaction(function(tx) {
        tx.executeSql(insertStatement, [datetemp])
      })
      alert("SUCCESS");
    }
    

    这是我在数据库中得到的:

    database screenshot

    如果我能得到一些帮助,那就太好了!

    3 回复  |  直到 6 年前
        1
  •  0
  •   Marcio Martins    6 年前

    您正在将$(“dt”)传递到数据库,该数据库是包含输入DOM对象的jquery封装对象。

    只需更改此行:

    var datetemp = $("#dt");
    

    为此:

    var datetemp = $("#dt").val();
    

    它应该工作得很好!

    希望有帮助!

        2
  •  0
  •   Vijay    6 年前

    传递的是日期时间对象而不是文本框值 在jquery中使用val函数 var dateTemp=$(“dt”).val();

        3
  •  0
  •   Alice Fluff    6 年前

    你路过了 [datetemp] 作为一个对象。

    function insertdate()
    {
        var datetemp = $("#dt");
        db.transaction(function(tx)
                      {
            tx.executeSql(insertStatement, [datetemp])    // your passing the object here
            })
        alert("SUCCESS");
    } 
    

    您需要遍历这个对象并获取值。将它们写入数组。

    [datetemp].forEach(function(value){    // iterating through it . . .
        // do stuff here . . . (i.e inert values in to array)
    });
    

    然后添加数据库

    var insertStatement = "INSERT INTO Date [dbo].[sampledate] (col0, col1, col2 
    // ect . . .) VALUES ([array].day, [array].month, [array].year // ect . . .)";
    
    function insertdate()
    {
        var datetemp = $("#dt");
        db.transaction(function(tx)
                      {
            tx.executeSql(insertStatement)    // just take the object out
            })
        alert("SUCCESS");
    } 
    

    更改insert命令,并在 [datetime] 这会更简单:)

    var insertStatement = "INSERT INTO Date [dbo].[sampledate] (col0, col1, col2 
    // ect . . .) VALUES ([datetemp].day, [datetemp].month, [datetemp].year  // 
    ect . . .))";
    
    function insertdate()
    {
        var datetemp = $("#dt");
        db.transaction(function(tx)
                      {
            tx.executeSql(insertStatement)    // just take the object out
            })
        alert("SUCCESS");
    }