【问题标题】:How to get value on drop box in Flask Python如何在 Flask Python 中的 drop box 上获取价值
【发布时间】:2017-07-24 15:53:17
【问题描述】:

我有一个 XML 文件。是跟随。我使用 Flask Framework Python 在搜索栏中获取查询和当前保管箱的值(例如英语或越南语)。当我输入或单击“搜索”按钮时,我使用“POST”方法获取值。但是dropbox的值为null。

 <form class="input-group">

                 <div class="input-group-btn search-panel" id="menu1">
                        <button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown">
                            <span>Language</span>
                        </button>
                        <ul name ="btnLanguage" class="dropdown-menu" role="menu">
                            <li><a>English</a></li>
                            <li><a>Vietnamese</a></li>
                        </ul>
                 </div>

                <input type="text" class="form-control" name="query" id ="query" placeholder="Search sentence...">
                <span class="input-group-btn">
                    <button id ="btnSearch" class="btn btn-success" type="submit">
                        <span class="glyphicon glyphicon-search" aria-hidden="true"></span>
                    </button>
                </span>
            </form>

你能帮我什么忙。谢谢

 @app.route("/search" , methods=["POST"])
 def search():
    print("True")
    # read the posted values from the UI
    _query = request.form['query']
    print(_query)
    _language = request.value['btnLanguage']
    print(_language)

和Json方法:

$(function(){
$('#btnSearch').click(function(){
    $.ajax({
        url: '/search',
        data: $('form').serialize(),
        type: 'POST',
        success: function(response){
            console.log(response);
        },
        error: function(error){
            console.log(error);
        }
    });
});

});

【问题讨论】:

    标签: python html json flask


    【解决方案1】:

    这是因为 ul-li 不是常规的表单控件(请查看 link 以获取 html 中的可用表单控件)。所以jquery在序列化表单数据的时候不会考虑。

    解决方案:您需要编写一个脚本来将自定义数据附加到您的表单数据中,或者您应该使用&lt;select&gt; 而不是 ul-li 下拉菜单。


    您的代码存在其他问题。

    • 您正在使用click() 事件处理程序和一个具有提交类型的按钮,因此将发生两个事件,一个是您正在调用的ajax,另一个是表单将通过GET 提交到服务器端。要删除问题,您应该监听表单 submit() 事件并防止事件传播(检查此 answer)。

    【讨论】:

    • 我已经按照您的建议修复了我的代码。但是在 ajax 代码和 python 中的变量 url: '/search' - app.route("/search", methods=["POST"]) def search(): print("True") 。不在控制台中打印“True”:(
    • Console.log() 序列化表单数据并检查是否发送到服务器。
    猜你喜欢
    • 2011-04-11
    • 2022-10-14
    • 2021-12-18
    • 1970-01-01
    • 2022-11-18
    • 2021-09-02
    • 1970-01-01
    • 1970-01-01
    • 2021-05-11
    相关资源
    最近更新 更多