创建后端的API后,我遇到了一个大问题。我有一个带有GET AJAX方法的表单来过滤和获得结果。它工作正常,但由于用户选择生成了网址,因此在使用或不使用每个过滤字段时,有N个选项无法创建每个组合。
以下是一个生成的网址示例:
http://example.com/api/?select1=choice1&select2=choice2&tag=word&active=true
此外,如果用户决定仅选择select1
和tag
我所做的实际上让我感到尴尬,因为我知道这不是一个好的解决方案(甚至不是很接近),甚至可视化它我只是无法想象如何让它工作但它看起来像这样:
select1 = $('#id_select1').find(":selected").text();
select2 = $('#id_select2').find(":selected").text();
if (select1 === "All" && select2 === "All") {
url_get = '';
} else if (select1 === "All" && select2 !== "All") {
url_get = 'select2=' + choice2
} else if (select2 === "All" && select1 !== "All"){
url_get = 'select1=' + choice1
} else {
url_get = 'choice1=' + select1 + '&' + 'choice2=' + select2
}
有没有更好的方法继续这个? 那边有任何Javascript Ninja吗?
答案 0 :(得分:0)
一种选择是使用.serialize()
:https://api.jquery.com/serialize/
它将采用您的表单并转换名称/值对并将其序列化为字符串。
一个例子:
var url_get = $('#myform').serialize();
答案 1 :(得分:0)
即使PURE Javascript读取每个参数,即使此参数不包含任何内容,也可以从AJAX中获取URL
http://example.com/api/?select1=choice1&select2=&tag=word&active=
问题是,您如何阅读该网址
ASP Classic:
Hashsets
因此,在这种情况下,即使选择了选项并且没有理由“dinamic”构造URL,也应构建URL。
Var1 = Request("select1")
Var2 = Request("select2")
Var3 = Request("tag")
Var4 = Request("active")
如果你在服务器端读到这个变量将是空白的,并且没有暗示......
所以取决于你在这个结构之后想要做什么,否则就是这个背景......