gpt4 book ai didi

javascript - 从html中获取数据<对其进行一些操作>并使用ajax或js将数据传回前端

转载 作者:太空宇宙 更新时间:2023-11-03 21:40:51 25 4
gpt4 key购买 nike

我试图将数据从网页获取到我的 flask 应用程序,并在对其进行一些操作后,输出列表我试图将其作为下拉列表发送回前端。

到目前为止我做了什么:

有一个用户表单,用户可以在其中输入详细信息并单击“提交”,然后获得 json 输出。

在这种形式中,我有一个搜索按钮,当用户输入一个字符串时,该字符串将被发送到 Flask 应用程序路径,并且完成很少的搜索操作并输出一个项目列表(直到这部分它正在工作!)

我需要开始工作的是输出列表应该再次发送回表单页面,但我无法使其正常工作。

这是我到目前为止所做的:

    var successFunction = function(response) {
/* do something here */
$('#info').html(JSON.stringify(data, null, ' '));
});
}
$(function(){
$('#btnSignUp').click(function(){

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

flask 应用程序有这样的东西:

from flask import Flask, render_template, request,jsonify,url_for
import json,os,re
app = Flask(__name__)

@app.route('/',methods=['GET','POST'])
def form():
if request.method == 'POST': #this block is only entered when the form is submitted
result = { key: value[0] if len(value) == 1 else value
for key, value in request.form.iterlists()
}
return json.dumps(result,indent=2)
return render_template('form_backup1.html')


@app.route("/signUp", methods=["POST","GET"])
def signUp():
jsdata = request.form['Nitro']
<couple of find and search operations the output of which is in
this dropdown_list list>
return jsonify(dropdown_list)

if __name__ == '__main__':
app.run(host="0.0.0.0",port="5000",debug = True)

剪切 html 页面只是为了显示搜索框:

      <div id='nitroo'>
Nitro_search: <input type="text" placeholder="Apply Nitro" name="Nitro" id="Nitro">
<button id="btnSignUp" class="btn btn-lg btn-primary btn-block" type="button">Search</button>
<pre id="info"></pre>

正如我所说,当用户单击搜索时,我能够获取用户在 html 表单中输入的文本。python 的输出列表是我无法到达前端的地方。

对此的任何帮助将不胜感激。

谢谢

最佳答案

您可以将 ajax 与 Jquery 结合使用。您可以看到this doc了解更多详情。

如何进行:

  1. 配置js脚本

在 HTML 文件模板中:

  • 加载 Jquery:

最好在任何其他 JavaScript 文件之前加载 Jquery。

静态:

<script type=text/javascript src="{{url_for('static', filename='jquery.js') }}"> </script>

或者使用 Google 的 AJAX 库 API:

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script>window.jQuery || document.write('<script src="{{url_for('static', filename='jquery.js') }}">\x3C/script>')</script>
  • 添加网站的动态路径:

    <script type=text/javascript>$SCRIPT_ROOT = {{ request.script_root|tojson|safe }}; </script>

    此脚本标记将全局变量设置为应用程序根目录的前缀。

  • 在 Flask 侧面

编写一个函数,将用户在表单中输入的值作为参数,执行搜索操作并返回一个包含要显示的列表的 JSON 对象。

@app.route("/_signUp")
def signUp():
myString = request.args.get('myString')

"""couple of find and search operations the output of which is in
this dropdown_list list"""

dropdown_list = ['A', 'B', 'C'] #sample

return jsonify(dropdown_list=dropdown_list)
  • 返回 HTML 代码
  • 编写一个脚本来检索输入的数据,以 Ajax 方式将它们发送到服务器并显示服务器返回的信息。

    <script type=text/javascript>
    $(function(){
    $('#btnSignUp').bind('click', function(){
    $.getJSON($SCRIPT_ROOT + '/_signUp', {
    myString: $('input[name="Nitro"]').val(),
    },function(data){
    $('#info').append('<li>' + data.dropdown_list[0] + '</li>' );//A
    $('#info').append('<li>' + data.dropdown_list[1] + '</li>' );//B
    $('#info').append('<li>' + data.dropdown_list[2] + '</li>' );//C
    }
    });
    });
    </script>
    <div id='nitroo'>
    Nitro_search: <input type="text" placeholder="Apply Nitro" name="Nitro" id="Nitro">
    <button id="btnSignUp" class="btn btn-lg btn-primary btn-block" type="button">Search</button>
    <pre id="info"></pre>
    </div>

    参见this link了解更多详情。

    关于javascript - 从html中获取数据<对其进行一些操作>并使用ajax或js将数据传回前端,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52870184/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com