2012-03-01 47 views
0

私はここにJavaScriptコードがあります。私が望むのは、このURLのデータ結果を格納することです:jqgridは変数からのデータを表示できません

'processjson.php?path=' + encodeURI('display/payTempEarn') + '&json=' + encodeURI(JSON.stringify(dataTempEarn))、変数 'tempIncDed'に、私のjqgridにそのデータを表示します。

ここで私の質問は、変数tempIncDedを警告すると正しいデータが格納されていることを示していますが、私のjqgridには表示されません。 私のコードで何かを忘れましたか?

以下

が私のjsコードです:

var tempIncDed = []; 
    $(document).ready(function() { 
     $("#tblIncDed").jqGrid({ data: tempIncDed, 
     datatype: "local",  
     colNames:['Code','Description', 'Taxable','Amount'], 
      colModel:[ 
      {name:'ded_code',width: 85}, 
       {name:'ded_desc'}, 
       {name:'taxable',width: 95}, 
       {name:'amount', formatter:'currency', align:'right',width: 85} 
     ], 
     rowNum:20,            
      viewrecords: true, 
      rowList:[20,50,100],   
     ppager: '#tblIncDedPager', 
     viewrecords: true, 
     caption: "Details" 
     }); 

     $("#btnEarn").click(function() { 
     var empNo = $("#tblPayroll").jqGrid('getCell',($("#tblPayroll").jqGrid('getGridParam', 'selrow')),'emp_no'); 
     var dataTempEarn = { 
      "SessionID": $.cookie("SessionID"), 
      "dataType": "data", 
      "per_id":$("#payPeriod").val(), 
      "emp_no":empNo 
     }; 
     $.ajax({ 
      type: 'GET', 
      url:'processjson.php?path=' + encodeURI('display/payTempEarn') + '&json=' + encodeURI(JSON.stringify(dataTempEarn)), 
      dataType: primeSettings.ajaxDataType, 
      success: function(data) { 
       if ('error' in data) 
       { 
        showMessage('ERROR: ' + data["error"]["msg"]); 
       } 
       else{     
        var resLen = data.result.length; 

        tempIncDed = JSON.stringify(data.result); 
      alert('this is the tempDed ' + tempIncDed);      

        $("#tblIncDed").jqGrid('setGridParam',{ 
             datatype: 'local', 
             data:tempIncDed} 
            ).trigger("reloadGrid"); 

       } 
      } 
     }); 
     $("#dialOtherIncDed").dialog("open"); 
     $("#dialOtherIncDed").attr("name","earnings"); 

     }); 
    }) 

T his is the tempDed sample data: [{"ded_id":"10000000845","ded_code":"100","ded_desc":"MEAL ALL","taxable":"N","amount":"10"},{"ded_id":"10000000849","ded_code":"101","ded_desc":"TRANSPORTATION","taxable":"N","amount":"40"},{"ded_id":"10000000851","ded_code":"103","ded_desc":"LAUNDRY","taxable":"N","mOther_amnt":"50.00"}]

私のhtmlコードの一部:

<!--master grid-->   
     <div style="width:100%"> 
       <table id="tblPayroll"></table> 
       <div id="tblPayrollPager"></div> 
      </div> 
      <!--dialog that contains the table for other earnings, deductions, loans--> 
      <div id="dialOtherIncDed" style="width:100%"> 
       <table id="tblIncDed"></table> 
       <div id="tblIncDedPager"></div><br><br> 
       Total amount: <b><span id="totalAmnt"></span></b> 
      </div> 

      <!--dialog that contains the dialog edit earnings, deductions, loans--> 
      <div id="editIncDed""> 
       <table> 
       <tr> 
        <span id="incDed_name"></span> 
        <td>Amount:</td> 
      <td><input class="numeric" type="text" id="amount" value = ""/></td></tr> 
       </table> 
      </div> 
<!--edit--> 
    <div id="dialogPayrollEdit" title="Payroll Entry"> 
     <table> 
       <tr> 
        <td>Payroll Period:</td> 
        <td><b><span id="periodDateL" style="color:blue"></span></b></td> 
        <td>Type:</td><td><b><span id="rateType" style="color:blue"></span></b></td> 
        <td>Rate:</td><td><b><span id="payRate" style="color:blue"></span></b></td> 
       </tr> 
       <tr> 
      <td>Employee Name:</td> 
      <td><b><span id="empName" style="color:blue"></span></b></td> 
     </tr> 

</table> 
      <hr/> 
      <fieldset><legend>Payroll Details</legend> 
       <p><center><b>EARNINGS</b></center></p> 


      <table> 
       <tr> 
        <td> 
         .... 
        </td> 
        <td> 
         <table > 

          <tr...tr> 
          <tr>...</tr> 
          <tr>...</tr> 
          <tr><td>Other earnings</td><td><input class="numeric" style="width:60px" id="mOther_amnt" value = ""/></td><td><input type='button' value='...' id="btnEarn"></td></tr> 
          <tr><td><b>GROSS PAY</b></td><td></td><td><b><span style="width:60px;color:blue" id="grossPay"/></b></td></tr> 
         </table> 
        </td> 
       </tr> 
      </table> 
      <hr/> 


<p><center><b>DEDUCTIONS</b></center></p> 
       <table width = "100%"> 
        <tr> 
         <td> 
          .... 
         </td> 
         <td> 
          <table > 

           <tr> 
            <td>Other deductions</td> 
            <td><input class="numeric" style="width:60px;color:black" id="mOther_ded" value = "" disabled/></td> 
            <td><input type='button' value='...' id="btnDed"/></td> 
           </tr> 
           <tr> 
            <td>Advances/Loans</td> 
            <td><input class="numeric" style="width:60px;color:black" id="mLoan_ded" value = "" disabled/></td> 
            <td><input type='button' value='...' id="btnLoan"></td> 
           </tr> 
           <tr></tr> 
           <tr></tr> 
           <tr><td><b>NET PAY</b></td><td></td><td><b><span class="numeric" style="width:60px;color:blue" id="netPay" value = "" disabled/></b></td><td></td></tr> 

          </table> 
         </td> 
        </tr> 
       </table> 
       <br>     
      </fieldset><br> 
      Suggest lowest NET PAY >>> <input type="text" id="lowNetPay" value = "" style="width:80px;color: black" value='0.00' disabled/> 
    </div><br><br> 
       <br><br> 
       <button id="btnPayrollEdit">Edit</button> 

btnLoan、btnDed、およびbtnEarnは同じグリッドを使用することになります。また、変数tempIncDedを使用して、返されたデータをajaxから保存しました..

+0

あなたはサーバーから返されたJSONデータ( 'tempIncDed'の値)を投稿していません。また、私はあなたがなぜこのように奇妙な方法でデータを読み込むのか理解していません。私は関数を使って 'postData'を使うとコードを簡単にすることができると思います。さらにあなたのページの説明が参考になります。 '#tblPayroll'はマスターグリッド、'#tblIncDed'は詳細グリッドですか?どの役割に「#btnEarn」ボタンがありますか?一部のHTMLコードが役立ちます。 – Oleg

+0

@Oleg、私の編集をご覧ください。 'btnPayrollEdit'をクリックすると、 'btnEarn'、 'btnLoan'、 'btnDed'を含む 'dialogPayrollEdit'が開きます。このボタンの1つ( 'btnEarn'、' btnLoan'、 'btnDed')をクリックすると' tblIncDed'を含む 'dialOtherIncDed'が開きます。応答していただきありがとうございます。 – jayAnn

答えて

0

私はついに自分の問題を解決しました。ボタンbtnEarnがクリックされたとき、

[{"ded_id":"10000000845","ded_code":"100","ded_desc":"MEAL ALL","taxable":"N","amount":"10"},{"ded_id":"10000000849","ded_code":"101","ded_desc":"TRANSPORTATION","taxable":"N","amount":"40"},{"ded_id":"10000000851","ded_code":"103","ded_desc":"LAUNDRY","taxable":"N","mOther_amnt":"50.00"}] 

このデータは、AJAXリクエストから出力された、例えば私は、VAR tempIncに保存され、このデータを持っていると言うことができます。

ここにbtnEarnのjavascriptコードがあります。

私はそのボタンをクリックするたびに、サーバーにajaxリクエストを送信します。返されたデータ(オブジェクトの配列を持っているのでオブジェクト)は、グローバル変数tempIncに保存されます。その後、私はこのコードを持っています:

$("#tblIncDed").jqGrid('setGridParam',{ 
    datatype: 'local', 
    data:tempInc} 
    ).trigger("reloadGrid"); 

that will display the tempInc in my jqgrid. Hope this will help someone out there. 
関連する問題