2014-01-30 3 views
0

도움을 주셔서 감사합니다. 이 하나가 내 엉덩이를 걷어차. 나는 몇 가지 유사한 질문을 여기에서 발견하고 제안을 시도했지만 여전히 작동하지 않습니다.jQuery를 사용하여 select에서 데이터 속성 가져 오기

내가하려는 것은 select 태그의 데이터 속성과 선택한 옵션의 값을 가져 와서 AJAX 요청을 통과시키는 것입니다.

콘솔에 "groupid undefined"가 표시되고 groupId 및 menuId 변수가 전달되지 않습니다.

그리고 난 그냥 고집하고 데이터 그룹 아이디와 메뉴 아이디를 "옵션"에 넣고 $ (this) .find ('selected :'). 데이터 ('menuid') 경로를 사용해야합니다. ...

HTML :

<select id="menuArray" class="menuPermission" data-groupid="2" data-menuid="9"> 
<option>-</option> 
<option value="R">R</option> 
<option value="W">W</option> 
</select> 

JS :

$(".menuPermission").change(function(){ 
    //console.log("groupid"+$(this).data('groupid')) 
    $.ajax({ 
     type: "POST", 
     url: "popup.php", 
     data: { 
      action:"updateAdminAccess", 
      groupId:$(this).data("groupid"), 
      access:$(this).val(), 
      menuId:$(this).data("menuid")} 
    }); 
}) 
+0

잘 http://jsfiddle.net/arunpjohny/를 찾습니다 RstqF/1/ –

+0

^^ 잘 작동합니다! – adeneo

답변

0
당신은 $.ajax() 객체의 $(this)를 호출

하고, 따라서을 반환 10.

이 (웃기려는 의도 없음)보십시오 :

$(".menuPermission").change(function(){ 
    var obj = this; 
    //console.log("groupid"+$(this).data('groupid')) 
    $.ajax({ 
     type: "POST", 
     url: "popup.php", 
     data: { 
      action:"updateAdminAccess", 
      groupId:$(obj).data("groupid"), 
      access:$(obj).val(), 
      menuId:$(obj).data("menuid")} 
    }); 
}) 
+1

음, 안돼! 범위가 변경되지 않았습니다! – adeneo

0

특정 속성 값을 얻을 수

.attr('attribute-name') 

을 시도

$(".menuPermission").change(function(){ 
     var groupId = $(this).attr('data-groupid'); 
     var menuId = $(this).attr('data-menuid'); 
     var optionVal = $(this).val(); 
     $.ajax({ 
      type: "POST", 
      url: "popup.php", 
      data: { 
       action:"updateAdminAccess", 
       groupId:groupId, 
       access:optionVal, 
       menuId:menuId} 
     }); 
    }) 
관련 문제