繁体   English   中英

如何从 html 中的 select 元素获取用户选择并将其用于 SQLAlchemy 查询,并在同一页面上返回结果?

[英]How do I get a users selection from a select element in html and use it in a SQLAlchemy query, returning the result on the same page?

我有一个 select 元素,其中包含从名称表中提取的条目,然后我想根据所选名称查询链接。 我希望链接在选择名称后显示在页面上,但我不知道将选择提交给 flask 或如何在加载后将查询结果返回到页面。

我目前有一个应用程序路由将 Name.query.all() 的结果发送为 names=names 但我不知道如何获取用户输入(比如名字)并在查询中使用它并返回查询[像 Link.query.filter(name_id == 1).all() ] 在页面加载后作为 links=links。

当你提出问题时,你必须分享你的代码,但由于你是新贡献者,我会给你一个答案。

如果你不想离开页面,你需要写一些 java 脚本。 这是一个例子:

<select onchange="myFunction()" id="mySelect">
    ...
</select>

<p id="link"></p>

<script>
myFunction() {
    var value = document.getElementById("mySelect").value;
    const xhttp = new XMLHttpRequest();
    xhttp.onload = function() {
        document.getElementById("link").innerHTML = this.responseText;
    }
    xhttp.open("GET", "yourDomain/yourRoute/" + value);
    xhttp.send();
}
</script>

现在在 flask 中创建一个路由来接收该请求并返回链接。

@app.route("/yourRoute/<value>", methods=["GET"])
def getLink(value)
    ....
    return link

一个更简单的替代方法是让用户 select 得到他们想要的,然后提交表单。 在 flask 中,返回一个显示链接的新模板。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM