jQuery自动完成和烧瓶

jQuery自动完成和烧瓶,jquery,python,json,autocomplete,flask,Jquery,Python,Json,Autocomplete,Flask,您好,先生 我正在努力从传递到输入字段的JSON对象中获取正确的信息 形式 控制器 指数 这就是控制器,它只是将类表单传递给视图,视图将填充所有字段 @admin.route('/') def index(): form = ClassForm() return render_template('admin/class/index.html', form=form) 自动完成 这是get请求,它将从用户表中获取所有的名字、姓氏和id(还使用角色对其进行过滤,但这与此无关) 这里

您好,先生

我正在努力从传递到输入字段的JSON对象中获取正确的信息

形式 控制器 指数 这就是控制器,它只是将类表单传递给视图,视图将填充所有字段

@admin.route('/')
def index():
    form = ClassForm()
    return render_template('admin/class/index.html', form=form)
自动完成 这是get请求,它将从用户表中获取所有的名字、姓氏和id(还使用角色对其进行过滤,但这与此无关)

这里是btw getAllStudents()

正如你所看到的,我正在传递一个普通的列表,只是想看看它是否适用

看法 我有一个正常的jinja视图,我将所有信息传递给该视图

{{form.function_name.label()}}
{{form.function_name()}}
javascript调用 所以我想知道,如何能够用字典变量名(键值)自动建议多数组列表中的名称? 然后在它旁边的按钮上,添加到列表中?值将附加到选定区域的位置。例如,Firstname和lastname将合并为一个字符串,并且将使用ID为的keyvalue打印在链接中

<ol>
  <li>John Doe<a href="ID?=1"></a></li>
  <li>John Doe<a href="ID?=2"></a></li>
  <li>John Doe<a href="ID?=3"></a></li>
</ol>

  • 无名氏
  • 无名氏
  • 无名氏
  • 编辑,向json对象添加字典键值

    您可以执行以下操作:

    $.ajax({
        url: '{{ url_for("admin.autocomplete") }}'
        }).done(function (data) {
    
         var newData = [];
    
         for (var i = 0; i < data.json_list.length; i++) {
    
          var obj = {
           label: data.json_list[i].Firstname + ' ' + data.json_list[i].Lastname,
           value: data.json_list[i].Firstname + ' ' + data.json_list[i].Lastname,
           id: data.json_list[i].ID
          }
    
          newData.push(obj);
         };
    
    
            $('#function_name').autocomplete({
                source: newData,
                datatype: "json"
            });
        });
    
    $.ajax({
    url:“{url_for(“admin.autocomplete”)}”
    }).完成(功能(数据){
    var newData=[];
    对于(var i=0;i
    {{form.function_name.label()}}
    {{form.function_name()}}
    
    <script>
    $(function() {
        $.ajax({
            url: '{{ url_for("admin.autocomplete") }}'
            }).done(function (data) {
                $('#function_name').autocomplete({
                    source: data.json_list,
                    datatype: "json",
                    datafields: [
                            { name: 'Firstname' },
                            { name: 'Lastname'},
                            {name: 'ID'}
                        ]
                });
            });
        });
    </script>
    
    {
      "json_list": [
        "aa",
        "bb",
        "test",
        "long name with space",
        "test2",
        "mega test",
        {
          "Firstname": "John",
          "ID": 1,
          "Lastname": "Doe"
        },
        {
          "Firstname": "Jane",
          "ID": 2,
          "Lastname": "Doe"
        }
      ]
    }
    
    <ol>
      <li>John Doe<a href="ID?=1"></a></li>
      <li>John Doe<a href="ID?=2"></a></li>
      <li>John Doe<a href="ID?=3"></a></li>
    </ol>
    
    $.ajax({
        url: '{{ url_for("admin.autocomplete") }}'
        }).done(function (data) {
    
         var newData = [];
    
         for (var i = 0; i < data.json_list.length; i++) {
    
          var obj = {
           label: data.json_list[i].Firstname + ' ' + data.json_list[i].Lastname,
           value: data.json_list[i].Firstname + ' ' + data.json_list[i].Lastname,
           id: data.json_list[i].ID
          }
    
          newData.push(obj);
         };
    
    
            $('#function_name').autocomplete({
                source: newData,
                datatype: "json"
            });
        });