我有一个 python 脚本,我使用一个按钮和一些带有 ajax 的 javascript 从表单中调用它。我真的很难找到python脚本返回的返回变量。
返回的信息似乎都以错误的顺序发生,这可能不是这种情况,而是它对我的看法。我想要的只是能够获取我的 python 脚本返回的数据。这么简单的事情怎么会这么难!!
任何帮助将不胜感激。谢谢
这是我的代码:
<script>
function drawgraph() {
var x = draw()
alert(x)
};
</script>
<script>
function draw() {
alert("Hello");
$.ajax({
url: "/currentcost.py",
success: function(response){
alert("Success");
return response;
//here you do whatever you want with the response variable
}
});
alert("World");
}
</script>
我得到的响应是“Hello”、“World”、“Undefined”和“Success”
这对我说,直到我的 javascript 函数完成之后,ajax 函数才真正完成,这并不能帮助我真正掌握返回的变量,因此我可以稍后在 javascript 中使用它
克里斯
编辑。
<head>
<title>Line Chart</title>
<script>
var ajaxResponse = ""
</script>
<script src="Chart.js"></script>
<script src="jquery.js"></script>
<script>
function drawgraph() {
function handleResponse(response) {
ajaxResponse = response;
}
draw(handleResponse);
};
function draw(handleResponse) {
$.ajax({
url: "/currentcost.py",
success: function(response){
handleResponse(response);
}
});
}
</script>
<script>
function alertbox() {
alert(ajaxResponse);
}
</script>
当前成本.py:
导入 MySQL 数据库
def index(req): dtbox = req.form.getfirst('dt', '') tmbox = req.form.getfirst('tm', '')
con = MySQLdb.connect('localhost', 'root', '', 'mydb')
with con:
cur = con.cursor(MySQLdb.cursors.DictCursor)
s = "SELECT tmp, watts FROM currentcost WHERE dt ='" + dtbox + "' and tm like '" + tmbox + "%'"
cur.execute (s)
rows = cur.fetchall()
x=""
y=""
for row in rows:
x=x+row["watts"]+","
y=y+row["tmp"]+","
x="data:["+x+"]"
y="data:["+y+"]"
con.close()
req.write(x)