我在我的网站上为我的搜索功能创建了一个分页器。分页器工作得非常好,搜索功能也是如此。但是,我遇到的问题是我不得不使用多余的代码来传递表单的值以运行查询。理想情况下,我想要它,以便当我按下提交按钮+页面提交时,它将表格中的值直接发布到URL作为URL变量,但是目前我正在提交它,检查有问题的表格是否是定义,然后将该值存储到变量中,通过所有页面链接的URL传递该变量,然后将其存储为URL变量。我想剪掉这个中间人,并从go这个词变成一个URL变量。有什么建议?谢谢你们。
<cfif IsDefined("form.search")>
<cfset search = form.search>
</cfif>
<cfquery datasource="test.datasource" name="findbands">
Select test_band
From test
Where test_band LIKE <cfqueryparam value="%#search#%" cfsqltype="cf_sql_varchar" />
</cfquery>
<FORM action="band_search.cfm" method="post">
<INPUT type="text" name="search"></INPUT>
<INPUT type="submit" value="Go"></INPUT>
</FORM>
<cfoutput query="findbands" startrow="1" maxrows="10">
#currentrow#) #test_band#
</cfoutput>
<cfif IsDefined("search")>
<cfset link = CGI.script_name & "?search=" & search>
<A href="#link#>Previous</A>
</cfif>
<cfif IsDefined("search")>
<cfset link = CGI.script_name & "?search=" & search>
<A href="#link#>Next</A>
</cfif>
我上面没有说明,但我有一些代码通过一个URL变量来编辑起始行并计算总页数。然而,这是无关紧要的。我需要的解决方案是在提交表单时我只能使用URL.search而不必创建变量搜索,如图所示。感谢。
答案 0 :(得分:3)
使用“获取”而不是“发布”的方法。它会将所有输入作为URL参数附加到操作字符串。
更改行:
<FORM action="band_search.cfm" method="post">
为:
<FORM action="band_search.cfm" method="get">
答案 1 :(得分:3)
您可以使用jQuery添加带有POST表单的参数,如下所示:
$(".submit").click(function() {
//gettting the value
var search_val = $('input#search').val();
//add hidden input
$("#formID").append("<input type='hidden' name='search' value='"+search_val+"' />").submit();
});
也许这不是更好的方法,但如果您只想通过url传递参数,则可以在提交表单之前更改表单的操作。
$(".submit").click(function() {
//gettting the action of the form
var action = $("#formID").attr("action");
//changing the value of the form
action += "?search="+$('input#search').val();
//Now submit the form
$("#formID").attr("action", action ).submit();
});
更新:更新问题后,我认为您只需更改POST
的{{1}};)