2016-07-28 2 views
0

예를 들어 공급 업체 ID 및 내 데이터 테이블의 상태를 설정하는 일부 선택 필드가 있습니다. 이 필드가 변경되면 이러한 매개 변수를 링크에 포함하고자합니다 (링크는 CSV로 데이터를 내보내는 서버 함수를 호출합니다). jquery/coffeescript에 대한 내 경험은 매우 제한되어 있으며 제대로 작동하지 않는 데 문제가 있습니다. 내가 지금까지 가지고있는 것은 :jquery와 연결할 매개 변수를 추가/제거하는 방법

$ -> 
    $('#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 

나는 나의 코드에 두 가지 문제점이있다. 하나는 어떤 이유로 값을 변경하면 매개 변수가 링크에 두 번 추가됩니다 (예 : http://link.com?vendor-id=1&vendor-id=1)

두 번째 문제점은이 선택 상자에 대해 다른 값을 선택하면 이전 값이 링크에서 제거되지 않지만 추가되었습니다.

어떻게 해결할 수 있습니까?

답변

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

으로 설정된 후에 추가됩니다. 링크를 읽은 후에 필자는 함수를 포함 시켰고 완벽하게 작동합니다. 힘내 친구 야!!!! – stoerebink

관련 문제