3

サイトの検索機能用にページネーターを作成しました。ページネーターは問題なく動作し、検索機能も同様です。ただし、私が抱えている問題は、クエリを実行するためにフォームの値を渡すためだけに余分なコードを使用しなければならないことです。理想的には、送信ボタンを押してページが送信されると、フォームの値が 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 を使用することです。ありがとう。

4

2 に答える 2

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質問を更新した後、変更する必要があると思いますGET;)

于 2013-02-20T15:42:46.697 に答える