Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/69.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 从Python返回的JSON创建jquery数据表_Javascript_Jquery_Python_Json - Fatal编程技术网

Javascript 从Python返回的JSON创建jquery数据表

Javascript 从Python返回的JSON创建jquery数据表,javascript,jquery,python,json,Javascript,Jquery,Python,Json,我试图从json中构建一个html表,json是我从服务器提取数据后创建的 数据似乎以正确的格式显示,但DataTable正在为“CIK”错误返回请求的未知参数。JavaScript调试器显示assign:[{“CIK”:“20”,“Date”:“2005-12-31”}] 我试过各种各样的方法,但似乎都没法奏效 下面是使用Python/Flask提取数据的代码 @app.route('/getJobs') def getJobs(): try: if session.g

我试图从json中构建一个html表,json是我从服务器提取数据后创建的

数据似乎以正确的格式显示,但DataTable正在为“CIK”错误返回请求的未知参数。JavaScript调试器显示assign:[{“CIK”:“20”,“Date”:“2005-12-31”}]

我试过各种各样的方法,但似乎都没法奏效

下面是使用Python/Flask提取数据的代码

@app.route('/getJobs')
def getJobs():
    try:
        if session.get('user'):
            connection_string = r"mssql+pymssql://{0}:{1}@MSSQL/CashFlow".format(
            session['user'],
            session['password'],)
            engine= create_engine(connection_string, echo=True)
            con = engine.connect()
            assigned=con.execute('select cik, datadate from assignments where %s=ID', (session['user']))
            assign=[]
            for job in assigned:
                assigndict={'CIK':str(job[0]), 'Date':str(job[1])}
                assign.append(assigndict)
            print assign
            return json.dumps(assign)
        else:
            return render_template('error.html', error = 'Unauthorized Access')
    except Exception as e:
        return render_template('error.html', error = str(e))    
这是我的HTML:

<!DOCTYPE html>
<html lang="en">
  <head>
    <title>Cash Flow App</title>


    <link href="http://getbootstrap.com/dist/css/bootstrap.min.css" rel="stylesheet">

    <link href="http://getbootstrap.com/examples/jumbotron-narrow/jumbotron-narrow.css" rel="stylesheet">
    <link href="../static/css/signup.css" rel="stylesheet">
    <script src="../static/js/jquery-1.11.2.js"></script>
    <script src="../static/js/jquery-datatables.js"></script>


  <body>

    <div class="container">
      <div class="header">
        <nav>
          <ul class="nav nav-pills pull-right">
            <li role="presentation" class="active"><a href="/logout">Logout</a></li>
          </ul>
        </nav>
        <h3 class="text-muted">Cash Flow App</h3>
      </div>
      <div class="jumbotron">
        <table id="asstable">
          <thead>
            <tr>
              <th>CIK</th>
              <th>Date</th>
            </tr>
          </thead>
          <tbody id="tbody">

          </tbody>
          </table>
      </div>
      <footer class="footer">
        <p>&copy; 2015</p>
      </footer>

    </div>
  </body>
    <script type="text/javascript">
      $(function(){
        $.ajax({
          url : '/getJobs',
          type : 'GET',

          success: function(assign){
              $('#asstable').DataTable({
                data: assign,
                columns:[
                  {data: "CIK"},
                  {data: "Date"}
                ]
               });   
          },
          error: function(error){
            console.log(error);
            }
          });
        });
      </script>


</html>

现金流应用程序
现金流应用程序 CIK 日期 &抄袭;2015年

$(函数(){ $.ajax({ url:“/getJobs”, 键入:“GET”, 成功:功能(分配){ $('#asstable')。数据表({ 数据:分配, 栏目:[ {数据:“CIK”}, {数据:“日期”} ] }); }, 错误:函数(错误){ console.log(错误); } }); });
我不确定这是否有帮助,但我也遇到过类似的情况。我使用了一个ajax调用来获取数据以填充表。我正常地初始化了表,在调用之后,我解析了一个JSON对象,并在其中循环使用DataTables row.add()函数来添加行

var obj = JSON.parse(xhttp.responseText);

    for (var key in obj) {
      if (obj.hasOwnProperty(key)) {
        adminTable.row.add( [
            obj[key].value1,
            obj[key].value2
        ] ).draw();
      }
    }

对于我来说,这不是一个完全令人满意的答案,因为我仍然无法理解为什么原始代码不起作用,但我发现,如果我只是更改脚本以解析返回的JSON文件,它现在将返回我从第一个代码中期望的结果:

    <script type="text/javascript">
      $(function(){
        $.ajax({
          url : '/getJobs',
          type : 'GET',

          success: function(assign){
            var assign2=JSON.parse(assign)
            $('#asstable').DataTable({
              data: assign2,
              columns:[
                {data: "CIK"},
                {data: "Date"}
              ]
             });
          },
          error: function(error){
            console.log(error);
            }
          });
        });
      </script>    

$(函数(){
$.ajax({
url:“/getJobs”,
键入:“GET”,
成功:功能(分配){
var assign2=JSON.parse(赋值)
$('#asstable')。数据表({
数据:2,
栏目:[
{数据:“CIK”},
{数据:“日期”}
]
});
},
错误:函数(错误){
console.log(错误);
}
});
});

当我用$('#asstable')替换函数(assign)中的assign时,请提供json响应示例。DataTable({data:[{“CIK”:“20”,“Date”:“2005-12-31”}),columns:[{data:“CIK”},{data:“Date”});它起作用了。