因此,我基本上想使用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>
答案 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发送该消息。