访问通过jQuery $ .post发送的数据时遇到问题

时间:2019-12-24 22:56:21

标签: javascript python jquery python-requests

因此,我基本上想使用jQuery方法$ .post将信息发送到我的应用程序(table_name var),但是当我尝试访问此数据时,在打印时它在控制台中显示为None。任何帮助表示赞赏。

Javascript:

function my_function(element_id) {

        console.log(element_id);
        var table_name = document.getElementById(element_id).textContent;
        console.log(table_name);
        $.post("/history", {table_name: table_name}, function(data) {

            document.getElementById("table").innerHTML = "<p> data </p>"

        });

    }

Application.py:

@app.route("/history", methods=["GET", "POST"])
def history():
if request.method == "POST":

    table_name = request.args.get("table_name")
    return table_name

else:

    user_history = "Graph"
    return render_template("history.html", user_history=user_history)

HTML:

<button id="{{user_history}}" onclick="my_function(this.id)">stuff</button>
<table id="table"></table>

2 个答案:

答案 0 :(得分:0)

您将数据变量用作纯文本:

00000004 Data length
43674249 Block ID "CgBI"
50002006 4 bytes of proprietary information
2CB87766 CRC checksum of the data block

相反,请尝试以下操作:

pngcrush

答案 1 :(得分:0)

我将使它更多一些jQuery,而不是将Native JS和jQuery混合使用。请考虑以下内容。

$(function() {
  function getData(tName, tObj) {
    $.post("/history", {
      table_name: tName
    }, function(data) {
      $("<td>").html("<p>" + data + "</p>").appendTo($("tr", tObj));
    });
  }

  $("button").on("click", function(e) {
    var i = $(this).attr("id");
    getData(i, $("#" + i + "-table"));
  });
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<button id="jsmith">Get Data</button>
<table id="jsmith-table">
  <tr></tr>
</table>

HTML表语法具有应维护的特定结构。

<table>
  <tbody>
    <tr>
      <td></td>
    </tr>
  </tbody>
</table>

由于该表中没有<tbody>,因此可以跳过<thead>元素。如果您要发送回的HTML数据已经包含所有这些内容,则可以将其删除,但是使用<p>包装时似乎不是那样。

我假设{{user_history}}填充了一个ID或名称,然后用于以后查找全部详细信息。因此,最好具有一个可以通过HTTP发布详细信息,然后接受一些数据返回到Target jQuery Object的函数。由于<button>似乎已将此ID属性写入ID属性,因此希望它是唯一的,我们可以通过POST发送该消息。