2017-11-29 6 views
0

동적으로 생성 된 HTML 테이블이 있습니다. 각 행에 드롭 다운이 있습니다. 드롭 다운에 옵션을 추가해야합니다. 그러나 내 코드는 첫 번째 행에만 값을 추가합니다.html 테이블 행의 각 선택 상자에 옵션을 동적으로 추가하십시오.

다음은 테이블을 만들고 옵션을 추가하는 방법입니다.

 $.post(  

     'dataform.php', 
     { functionname: JSON.stringify('operation'), args:part}, 
     function(response) { 
     result = JSON.parse(response); 



      block = [] 
      for (var item in result){ 

       var objectItem = result[item]; 

      var opnum = objectItem.opnum; 
      var opdesc = objectItem.opdesc; 
      var wc = objectItem.wc; 
      var sel = document.createElement("select"); 
       sel.type = "select"; 
       sel.id = "sel"; 
       sel.value = wc; 
      var activity = objectItem.activity; 
      var machine = objectItem.machine; 
      var direct_labor = objectItem.direct_labor; 

      block.push(opnum); 
      block.push(opdesc); 
      block.push(wc); 
      block.push(sel); 
      block.push(activity); 
      block.push(machine); 
      block.push(direct_labor); 
      ops.push(block); 
      block = []; 

       } 

      for (var i = 0; i < ops.length; i++) { 
      tr = document.createElement('tr'); 
      tr.appendChild(document.createElement('td')); 
      tr.appendChild(document.createElement('td')); 
      tr.appendChild(document.createElement('td')); 
      tr.appendChild(document.createElement('td')); 
      tr.appendChild(document.createElement('td')); 
      tr.appendChild(document.createElement('td')); 



      tr.cells[0].appendChild(document.createTextNode(ops[i][0])); 
      tr.cells[1].appendChild(document.createTextNode(ops[i][1])); 
      tr.cells[2].appendChild(ops[i][3]); 
      tr.cells[3].appendChild(document.createTextNode(ops[i][4])); 
      tr.cells[4].appendChild(document.createTextNode(ops[i][5])); 
      tr.cells[5].appendChild(document.createTextNode(ops[i][6])); 
      table.appendChild(tr); 

      } 

      tablearea.appendChild(table);   


     }, 
    ) 

$.post(
    'dataform.php', 
    {functionname: JSON.stringify('wc')}, 
    function(response) { 
     result = JSON.parse(response); 

      block = [] 
      for (var item in result){ 

      var objectItem = result[item]; 

      var wrkc = objectItem.wc 
      var act_key = objectItem.activity; 

      debugger; 
      $.each($('#sel').append($("<option></option>").html(wrkc))); 

     } 


    } 

) 


}) 

셀이 생성 될 때마다 옵션이 추가되도록 시도했지만 동일한 결과가있었습니다.

도움을 주시면 감사하겠습니다.

감사합니다.

+0

더 나은 답변을 찾으십시오. 링크 : http://www.jsonwrapper.com/?utm_source=stackoverflow&utm_medium=tags&utm_campaign=queries –

+0

페이지에서 요소 ID를 반복 할 수 없습니다. 그것들은 정의상 독특합니다. 클래스를 사용하여 선택 항목 타겟팅 – charlietfl

답변

0

('#sel') ID 선택기는 내부적으로 document.getElementById()을 사용하며 요소 만 반환 할 수 있습니다. 그래서 그것은 단지 하나에 추가됩니다. 클래스를 포함하는 각 요소에 추가하려면 클래스를 사용하십시오.