我是新来的。目前,我在检索下拉菜单中选定的项目时遇到了问题,而且我还没有看到任何关于它的帮助。谁能教我怎么解决这个问题?
谢谢
我的python服务器:
import web
import pdb
from matching_tester import *
def make_text(string):
return string
class tutorial:
def GET(self):
form = my_form()
return render.tutorial(my_form(), "Your text goes here.")
def POST(self):
form = my_form()
form.validates()
s = form.d.Devices
print s
return make_text(s)
if __name__ == '__main__':
urls = ('/', 'tutorial')
render = web.template.render('templates/')
app = web.application(urls, globals())
my_form = web.form.Form(
web.form.Dropdown('Devices', [('1', 'iPhone 4'),
('2', 'iPhone 4S'),
('3', 'iPhone 5')],
web.form.notnull,
**{'multiple':None, 'size': 4}),
web.form.Dropdown('Country', [('1', 'All'),
('2', 'US'),
('3', 'JP')],
web.form.notnull,
**{'multiple':None, 'size': 4})
)
app.run()我的HTML:
=== tutorial.html ===
$def with (form, text)
<!doctype html>
<html>
<head>
<title>Python and AJAX tutorial for beginners with webpy and jQuery</title>
<link rel="stylesheet" type="text/css" href="/static/tutorial.css" />
<script type="text/javascript" src="/static/jquery.js"></script>
<script type="text/javascript">
jQuery(document).ready(function() {
jQuery(".button").click(function() {
var input_string = $$("input#textfield").val();
jQuery.ajax({
type: "POST",
data: {textfield : input_string},
success: function(data) { jQuery('#foo').html(data).hide().fadeIn(1500);
},
});
return false;
});
});
</script>
</head>
<body>
<br>
<form class="form" method="post">
$:form.render()
<input class="button" type="submit" value="send"/>
</form>
<br><br>
<span id="foo">$text</span>
</form>
</body>
</html>发布于 2017-02-05 09:35:31
你工作太努力了:
您的python代码很好。你的HTML没有问题,但是嵌入的javascript才是问题所在。
具体地说,您对var input_string = ...的调用是错误的(而且是不必要的)。您没有id为textfield的输入元素。不要紧,你不需要它。
在ajax调用中,您发送了错误数据,即textfield的值。相反,只要序列化表单并发送该信息即可。
jQuery.ajax({
type: "POST",
data: jQuery('form').serialize(), // <-- Here
success: function (data) {
jQUery('#foo').html(data).hide().fadeIn(1500);
},
});https://stackoverflow.com/questions/42047420
复制相似问题