问题描述
我正在研究Flask应用,并在“产品”上实现了简单的搜索功能。 我把创建响应的JavaScript代码+ HTML代码+ Flask方法放在一起。
Select2组件可以正常工作,直到它必须显示来自后端的结果为止。 我在浏览器中看到响应有效载荷是来自后端的JSON,但是以某种方式Select 2没有显示这些结果。 我什至添加了一些JavaScript警报,并且在JSON警报中显示了JSON数据,但没有将其添加到Select2值中。
到目前为止,这里是我的代码: HTML + JavaScript(在Jinja-Flask模板内部):
<header><h2>Buscar Producto emulando youtube</h2></header>
<section class="create_item-form">
<div class='container'>
<h3>probando el select 2</h3>
<form>
<select id='selUser' style='width: 500px;'>
<option value='0'>Click para buscar producto </option>
</select>
</form>
<script type=text/javascript>
$(document).ready(function(){
$("#selUser").select2({
ajax: {
url: '/compras/new_name_search',type: 'POST',dataType: 'json',delay: 500,data: function (params) {
return {
searchTerm: params.term // search term
};
},processResults: function (response) {
return {
results: response
};
},cache: true
}
});
});
</script>
</div>
</section>
然后,我的Flask代码:
def new_name_search():
print("prod_name",request.form['searchTerm'])
#con el parametro que venga del front end,via post,hacemos el query
#modificar el metodo de query,para que sea algo mas de este estilo:
# $fetchData = MysqLi_query($con,"select * from users where name like '%".$search."%' limit 5");
#y devolver el resultado en un dict ?
try:
test_prod = request.form['searchTerm']
if test_prod.lower() == 'copisi':
return jsonify(id=1,text='Aceite De Girasol Y Oliva copisi Scelto 900 Ml')
else:
return jsonify(id=0,text='otros prod')
except Exception as e:
return str(e)
与HTML交互时,我可以输入Select2并进行搜索。后端从该选择中获取输入数据,它创建回JSON并将响应发送到浏览器。
在这种情况下,它只是一个简单的id=1,text='Aceite De Girasol Y Oliva copisi Scelto 900 Ml'
,仅用于调试目的,但是它将从数据库中获取数据。
有什么线索吗?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)