首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从Webpy下拉列表中获取所选项目

如何从Webpy下拉列表中获取所选项目
EN

Stack Overflow用户
提问于 2017-02-05 08:54:02
回答 1查看 562关注 0票数 0

我是新来的。目前,我在检索下拉菜单中选定的项目时遇到了问题,而且我还没有看到任何关于它的帮助。谁能教我怎么解决这个问题?

谢谢

我的python服务器:

代码语言:javascript
复制
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:

代码语言:javascript
复制
=== 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>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-02-05 09:35:31

你工作太努力了:

您的python代码很好。你的HTML没有问题,但是嵌入的javascript才是问题所在。

具体地说,您对var input_string = ...的调用是错误的(而且是不必要的)。您没有id为textfield的输入元素。不要紧,你不需要它。

在ajax调用中,您发送了错误数据,即textfield的值。相反,只要序列化表单并发送该信息即可。

代码语言:javascript
复制
jQuery.ajax({
    type: "POST",
    data: jQuery('form').serialize(),  // <-- Here
    success: function (data) {
        jQUery('#foo').html(data).hide().fadeIn(1500);
    },
});
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42047420

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档