2016-03-22 4 views
0

私は、チェックボックスを使用していくつかのコードがあります。HTML/JS/Coldfusion - 複数のlocation.hrefで選択できますか?

input type="checkbox" onclick="location.href='test-launch.cfm?Code=7&After=8&OrderOn=9 

このチェックボックスが選択されている場合、それは私のページをリロードしますが、ここに私の問題がどこにあるかです。私は(上記と異なる値であり、上の順序の下に)異なる値を渡す別のチェックボックスを選択した場合:

input type="checkbox" onclick="location.href='test-launch.cfm?Code=7&After=8&OrderOn=5 

ページをリロードし、もうorderOn = 9を持つ任意のデータを示していないが、それだけでOrderOn = 5とのデータを示しています。私はlocation.hrefで "multiselect"が動作することを望んでいました。 location.hrefは "マルチセレクション"なので、これを処理する良い方法はありますか?

+1

おそらくあなたは、送信ボタンを束または通常のチェックボックスを持っている必要がありますか? –

+0

@JamesAMohler私はそれを試してみましたが、どういうわけかクリックして複数ページを選択できる方法があるかどうかを知りたがっています – Ren44

+0

クリックするたびに別のオプションが追加されますか? –

答えて

1

function addOrder(n) { 
    var search = location.search; 
    if (search.length = 0) { 
     search = "?OrderOn[]=" + n; 
    } else { 
     search += "&OrderOn[]=" + n; 
    } 
    location.href = 'test-launch.cfm' + search; 
} 

その後に、あなたのHTMLを変更します。

多くのボックスをチェックすると、URLが大きくなります。フィールド名に[]を使用する必要はありません。ColdFusionは、同じパラメータ名のクエリ文字列値をコンマで区切られた値リストに自動的に変換します。私は、最新バージョンにはリストを自動的に配列に変換するいくつかのフラグがあると思います。

このコードは同じページに送信されます。フォームのアクションの値を変更して、別の場所に投稿してください。

http://127.0.0.1/test/reload.cfm?whatever=2&whatever=4&whatever=6&whatever=8&whatever=10

<script src="//code.jquery.com/jquery-1.12.0.min.js"></script> 
<script> 
$(document).ready(function(){ 
    $('.clickMe').on('click', function() { 
     $('#foo').submit(); 
    }); 
}); 

</script> 

<cfparam name="url.whatever" type="string" default="" /> 

<form name="foo" id="foo" action="" method="get"> 
    <cfoutput> 
     <cfloop from="1" to="10" index="x"> 
      <cfset checked = false /> 
      <cfif listFindNoCase(url.whatever, x)> 
       <cfset checked = true /> 
      </cfif> 
      <label for="whatever_#x#"><input type="checkbox" name="whatever" id="whatever_#x#" class="clickMe" value="#x#" <cfif checked>checked="checked"</cfif>>#x#</label><br /> 
     </cfloop> 
    </cfoutput> 
</form> 

<cfdump var="#url#" />
+0

これは私のためにそれをしました。ありがとう – Ren44

1

複数選択を使用すると、選択された各値がURLの別のパラメータとして渡され、通常は配列形式の名前が与えられ、サーバースクリプトはそれらのすべてを受け取ります。したがって、URLは次のようになります。

test-launch.cfm?Code=7&After=8&OrderOn[]=9&OrderOn[]=5 

パラメータに別の注文IDを追加する機能を定義することができます。私はこのコードが何をしたいんだと思う

<input type="checkbox" onclick="addOrder(9)"> 
関連する問題