我正在处理一个python程序和一个 AJAX 请求。我试图从我的Javascript中获取一些数据到python程序中,这是我一直使用的常规方法。getfirst(field name)不起作用,我认为这是因为请求是通过ajax发出的(抱歉,我对这一切都很陌生),所以我尝试使用以下代码
Python:
import MySQLdb
import cgi, cgitb
def index(req):
# Create instance of FieldStorage
form = cgi.FieldStorage()
# Get data from fields
dtbox = form.getvalue('dt')
tmbox = form.getvalue('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)
Javascript程式码片段:
function draw(handleResponse) {
$.ajax({
url: "/currentcost.py",
data: {dt: frm.dt, tm: frm.tm},
success: function(response){
handleResponse(response);
}
});
<form name="frm" target="ifrm">
<iframe name="ifrm" id="ifrm" style="display:none"></iframe>
<fieldset style="width:300px">
<legend>Chart Date and Time</legend>
Alter the date and time settings <br>
Date:
<select name="dt">
我希望表单值dt和tm被传输到python程序,在那里它将挑选出它们并运行我的选择查询......我得到的只是一个空白:-(
期待你的帮助,谢谢
克里斯
1条答案
按热度按时间mm5n2pyu1#
AJAX 调用的类型应该是
"POST"
,可以使用.serialize()
序列化表单中的字段。编辑
你通常不应该使用GET请求来提交表单。也就是说, AJAX GET应该看起来像:
这假设您已将属性
id="dt"
插入第一个元素,并将id="tm"
插入第二个元素。