2013-05-11 4 views
-2

서버에서 데이터를 가져 와서 테이블에 인쇄합니다. 나는 두 가지 옵션 (승인 및 비 승인)이있는 드롭 다운 메뉴를 사용했습니다. 내가 선택한 행에 대해서만 값을 업데이트하는 함수를 호출하고 싶습니다. 내 코드는 다음과 같습니다드롭 다운 메뉴는 최상단 행에서만 작동합니다.

<script type="text/javascript"> 
/** 
* This code declares your class and saves an object "blogentry" to the table on StackMob. 
* StackMob will create the table for you automatically based on your JSON. 
*/ 
$(document).ready(function() { 
      result(); 
      function result() { 

      var device = StackMob.Model.extend({ schemaName: 'device' }); 
      var mydevice = new device({ }); 
        var q = new StackMob.Collection.Query(); 
        q.equals('device_org', 1); 
        q.setRange(0,9).orderDesc('lastmoddate'); 

        mydevice.query(q, { 
         success: function(modal) { 
          //After StackMob returns "Bill Watterson", print out the result 
          var array = modal.toJSON(); 
          // console.debug(array); 
          //$('#data').html(array[0].user_name); 
          var val = array[0].lastmoddate; 
          $('#last_mod_date').attr('value', val); 


           var key; 
           var count = 0; 
           for(key in array) { 
            if(array.hasOwnProperty(key)) { 
             count ++; 
            } 
           } 
                   // $("#ui").append("<tr><td>"+array[i].device_IMEI+"</td><td>"+array[i].device_model+"</td><td>"+array[i].device_permission+"<select id='abc' ><option value='true'>Approve</option><option value='false'>DisApprove</option></select></td> <td>"+ new Date(array[i].lastmoddate)+"</td><tr>"); 

           //alert(count); 
          for(var i=0; i<=count; i++) 
          { 
          // if(array[i].org_img == localStorage.getItem("stackmob.oauth2.user")) 

           //alert(array[i].org_img); 
            //$('#last_mod_date').html(array[0].lastmoddate); 
            //$('#device_id').attr('value',disapprov); 
            //alert(val); 
            $("#ui").append("<tr><td>"+array[i].device_IMEI+"</td><td>"+array[i].device_model+"</td><td>"+array[i].device_permission+"<select id='abc' ><option value='true'>Approve</option><option value='false'>DisApprove</option></select></td> <td>"+ new Date(array[i].lastmoddate)+"</td><tr>"); 

       $(document).on('change', 'select#abc', function(){ 
// do something 
//alert("Updated"); 
var value=$("#abc").val(); 
alert(value); 

//exit; 
}); 

           //end if condition 
          } // end for loop 




         } //end success 


        }); // end imagesearch schema query 

        } // end result function 


      setInterval(check_newentry,1000); 

        function check_newentry() { 
         var device = StackMob.Model.extend({ schemaName: 'device' }); 
      var mydevice = new device({ }); 
        var q = new StackMob.Collection.Query(); 
        q.orderDesc('lastmoddate'); 
        mydevice.query(q, { 
         success: function(modal) { 
          //After StackMob returns "Bill Watterson", print out the result 
          var array = modal.toJSON(); 
          // console.debug(array); 
          //$('#data').html(array[0].user_name); 


          // alert(lastmod_date_old +"..."+ lastmod_date); 
          if(lastmod_date_old < lastmod_date) 

          { 

           var val = array[0].lastmoddate; 
           $('#last_mod_date').attr('value', val); 

           var key; 
           var count = 0; 
           var counter=0; 
           for(key in array) { 
            if(array.hasOwnProperty(key)) { 
             count ++; 
            } 
           } 
           //alert(count); 
         for(var i=0; i<=count; i++) 
          { 

           if(counter<50) 
           { 

            //$("#ui").append("<tr><td>"+array[i].device_IMEI+"</td><td>"+array[i].device_model+"</td><td>"+array[i].device_permission+"</td><td>"+new Date(array[i].lastmoddate)+"</td><tr>"); 

            //------------------------------------------- end device schema code 
                     $("#ui").append("<tr><td>"+array[i].device_IMEI+"</td><td>"+array[i].device_model+"</td><td>"+array[i].device_permission+"<select id='myList'><option value='true'>Approve</option><option value='false'>DisApprove</option></select></td> <td>"+ new Date(array[i].lastmoddate)+"</td><tr>"); 


            counter++; 

           } 
           else 
           exit(); 
          } 
         } 
         } 
        }); 
        } // end check_newentry 
        }); 

     </script> 

스냅은 다음과 같습니다 enter image description here

이 코드에 문제가 어떻게이 모든 행을 위해 작동 할 것입니다. 해당 행에 해당하는 IMEI 번호를 선택하고 싶습니다. 내가 어떻게 도와 줄 수 있니?

답변

1

은 단지 첫 번째를 잡고 ID abc 방송에 의한 요소를 얻을 때

$(document).on('change', 'select#abc', function(){ 
// do something 
}); 

내가 생각 아이디 ABC 어떤 선택에 이벤트를 연결하는 루프 외부보십시오. 당신도 방금 대신

document.getElementById('abc') 

사용이

$('select#abc').change(function(){ 
//do something 
}); 

그래서 그것이 내가 stackmob server.WIthin에서 데이터를 가져 오는하고

+0

아이디 ABC와 모든 선택을 잡고 사용하는 그 코드 사용 jQuery를 변경할 수 있습니다 쿼리의 성공 나는 그것을 사용하여 루프를 사용하고 있습니다. 루프 귀하의 코드를 시도했지만 루프 내부에만. 그래서 하나의 옵션을 선택하는 기능은 행 (예. 5 번 호출). 함수를 한 번만 호출하고 싶습니다. id = 'abc'의 범위에 문제가 있다고 생각합니다. 왜이 문제를 해결하기 위해 loop.so 외부에서 작동하지 않는 것입니까? ??? – Alpesh

+0

이 문제를 해결하기 위해 – sergioadh

+0

코드를 업데이트합니다. exit를 사용 했으므로 함수를 1로만 호출했습니다. 이제는 내가 선택한 옵션을 승인 또는 비 승인 한 행과 동일한 행을 기반으로 장치 -IMEi 번호를 가져 오려고합니다. 내가 그 IMEI에 대한 드롭 다운 메뉴의 값을 업데이 트하려는 뜻. 그래서 내가 어떻게 그 pirticular IMEI를 얻을 수 있습니까? – Alpesh

관련 문제