2016-07-28 16 views
0

私は、例えば、私のデータテーブルのvendor-idとstatusを設定するいくつかの選択フィールドを持っています。これらのフィールドが変更されると、これらのパラメータをリンクに含めることにします(このリンクは、データをcsvにエクスポートするサーバー関数を呼び出します)。 jquery/coffeescriptでの私の経験は非常に限られており、これを動作させるのに問題があります。私が今までに持っているものは:jqueryにリンクするparamsを追加/削除する方法

$ -> 
    $('#vendor-id').on 'change', -> 
    $('#shipments-table').DataTable().ajax.reload() 
    $('a.download-link').attr 'href', (index, href) -> 
     param = 'vendor-id='+$('#vendor-id').val(); 
     if href.charAt(href.length - 1) == '?' 
     href + param 
     else if href.indexOf('?') > 0 
     if href.indexOf(param) == 0 
      href + '&' + param 
     else 
     href + '?' + param 
    return 

私のコードには2つの問題があります。 1つは何らかの理由で値を変更すると、パラメータがリンクに2回追加されます(例:http://link.com?vendor-id=1&vendor-id=1

2番目の問題は、この選択ボックスに別の値を選択すると、前の値がリンクから削除されずに追加されます。

どうすればこの問題を解決できますか?

答えて

1

回答はこちらからChange URL parametersです。たとえば:https://stackoverflow.com/a/10997390/4335261 - それは私のために働いた。 updateURLParameter関数をコピーして、この方法で使用してください:

$ -> 
    $('#vendor-id').on 'change', -> 
    $('#shipments-table').DataTable().ajax.reload() 
    $('a.download-link').attr 'href', (index, href) -> 
    updateURLParameter(href, 'vandor-id', $('#vendor-id').val()) 
+0

これは私のためには機能しません。 (私は 'vandor-id'のタイプミスを修正しました)。リンクは変更されません。パラメータを変更するためにパラメータが存在する必要がありますか?デフォルトでは存在しませんが、値が設定された後に追加されます – stoerebink

+0

Woops。私はリンクを読んだ後、私は関数を含め、それは完全に動作しています。歓声メイト!!!! – stoerebink

関連する問題