在javascript中创建筛选器以通过url筛选结果
我觉得我真的很快就能弄明白了。我尝试了很多不同的方法 我想在协议模型中创建两个选项,一个用于写入类型,另一个用于排序,以过滤结果。我想我需要在JS文件中为index.html编写一个不同的代码,并可能在我的控制器中进行编辑 我找到了一个解决问题的办法,但我想不出剩下的办法来解决这个问题 我认为我需要做的是:更改模型变量以接受params[:writing_type]和:sort_by Index.html 书写类型 大学申请 大学论文 商业文件 恢复 高中作文 奖学金论文 语言翻译 排序 到期日结算员 到期日在javascript中创建筛选器以通过url筛选结果,javascript,jquery,html,ruby-on-rails,ajax,Javascript,Jquery,Html,Ruby On Rails,Ajax,我觉得我真的很快就能弄明白了。我尝试了很多不同的方法 我想在协议模型中创建两个选项,一个用于写入类型,另一个用于排序,以过滤结果。我想我需要在JS文件中为index.html编写一个不同的代码,并可能在我的控制器中进行编辑 我找到了一个解决问题的办法,但我想不出剩下的办法来解决这个问题 我认为我需要做的是:更改模型变量以接受params[:writing_type]和:sort_by Index.html 书写类型 大学申请 大学论文 商业文件 恢复 高中作文 奖学金论文 语言翻译 排序 到期
我觉得你在用一种相当艰难的方式做一些直截了当的事情。您应该能够在没有所有JS的情况下通过以下方式实现您想要的:
<form accept-charset="UTF-8" action="/agreements" method="get">
<input type='submit' value="go">
<select id="querySelct" name="writing_type">
<option value="0" label="Writing Type">Writing Type</option>
<option value="1" label="College Applications">College Applications</option>
<option value="2" label="College Essays">College Essays</option>
<option value="3" label="Business Papers">Business Papers</option>
<option value="4" label="Resumes">Resumes</option>
<option value="5" label="High-School Essays">High-School Essays</option>
<option value="6" label="Scholarship Essays">Scholarship Essays</option>
<option value="6" label="Language Translation">Language Translation</option>
</select>
<select id="landingSelect" name= "sort_by">
<option value="0" label="Sort By">Sort By</option>
<option value="1" label="Due Date(closer)">Due Date(closer)</option>
<option value="2" label="Due Date(further)">Due Date(further)</option>
</select>
</form>
好吧,我把数字改成实际的书写类型,然后换控制器。但是,如何使writing类型的默认值成为所有writing类型?我试着在第一个选项的选择选项中创建一个数组,但是我没有得到任何结果。只是添加了一个更新来显示如何在控制器中处理它。我改变了,这似乎可以在开始过滤之前加载页面。我没有得到任何结果,直到我单击go按钮。我怎样才能让它自动加载所有文件?我在选项中添加了selected for all,但似乎表单必须先通过。是否有一种在表单提交前显示的方法?或者formsubmit on load?在页面的第一次加载时,没有参数[:writing_type]将不存在,因此您可以将if语句更改为if params[:writing_type]==all | | params[:writing_type]。无?为了默认allyea哈哈,我刚刚添加了这个参数,如果params[:writing_type]==nil params[:writing_type]=all end
if params[:writing_type] == "all" #or whatever option represents all
@agreements = Agreement.all
else
@agreements = Agreement.where(writing_type: params[:writing_type])
end