2013-06-02 211 views
1

我在網上看過幾篇很好的教程......但不知何故,我無法應用或不知道如何應用它。動態填充jqgrid colModel

反正這是我希望做的:

用戶將增加開始周&末周

所以colModel將是:

  1. 的ID,例如int_weekid
  2. 從開始周和端周e.g2周產生至每週5

colModel將> int_weekid | week2 | week3 | week4 | week5

我試着這樣做,但有些事情是錯的。有人能幫助我嗎? @oleg幫助請。

jQuery(document).ready(function(){ 

    var start = $("#weekstart").val(); 
    var end = $("#weekend").val(); 
    var lastsel2; 
    var j=0; 

    var ColModel1 = [ 
    {name:'ID',index:'int_userid', hidden:false, align:'center', width:30, search:false}, 

    for (j=start;j<=end;j++) { 
     {name:'WEEK"+j+"',index:'WEEK"+j+"', align:'center', width:30, search:false},; 
    } 
    ]; 

    jQuery("#grn_transac").jqGrid({ 
    url:'transaction/grn_transacdata2.php', 
    datatype: "json", 
    colModel: ColModel1, 
    pager: '#pager', //pagination enable 
    rowNum:30, 
    rowList:[10,20,30], 
    width:950, 
    height: 'auto', 
    //sortname: 'int_weekid', 
    sortorder: 'DESC', 
    }); /* end of jqgrid */ 

}); 

UPDATE:

成功添加colModel動態地我發現了一個奇怪的問題...... 讓說我有50周2012年,當我把開始= 1,結束= 50沒問題一切看起來不錯..但不知何故,當我keyin值爲開始= 4(單一數字)和結束= 18(雙數字數字)我沒有得到任何東西我的一週colModel除了代碼& SITE ..我通常不會有任何問題,如果它開始= 1或開始和結束都是單一數字或兩者都是雙數..下面是我的代碼..希望有人可以幫助我這個。 。 @owlwark,@oleg

<input name="mula" type="text" id="mula" /> 
<input name="akhir" type="text" id="akhir" /> 
<input name="btn_cons" type="button" id="btn_cons" value="SUBMIT" /> 

<script type="text/javascript"> 
<!-- Connected Consumers Trend --> 

jQuery(document).ready(function(){ 

    $("#btn_cons").click(function(){ 
    $("#production").jqGrid('GridUnload'); 
    var mula = $("#mula").val(); 
    var akhir = $("#akhir").val(); 
    var projek = 21; 
    var tahun = 2013; 

    var ColModel1 = []; 
ColModel1.push({name:'CODE',index:'txt_site_code', hidden:false, align:'center', width:70 }); 
ColModel1.push({name:'SITE',index:'txt_site_name', hidden:false, align:'left', width:190 }); 

    for (var j = mula; j<=akhir; j++) { 
    ColModel1.push({name:'WEEK'+j,index:'WEEK'+j, align:'center', width:60 }); 
     } 

    var lastsel2; 
    jQuery("#production").jqGrid({ 
     url:'dash/production/call_data.php?start='+mula +'&end='+akhir +'&project='+projek +'&year='+tahun, 
     datatype: "json", 
     colModel: ColModel1, 
     pager: '#pager', //pagination enable 
     rowNum:30, 
     rowList:[10,20,30], 
     width:1000, 
     height: 'auto', 
     shrinkToFit:false, 
     //sortname: 'int_userid', 
     sortorder: 'DESC', 
     hidegrid: false, //show/hide grid button on caption header 
     viewrecords: true, //display the number of total records 
    // editurl:"transaction/grnedit.php", 
     loadtext: "Loading Data, Please Wait...", 
     rownumbers:true, // add row numbers on left side 
     caption: '&nbsp; Consumer', 

    }); /* end of jqgrid */ 

}); //end btn_cons   
}); /*end of document ready*/ 
    </script> 

<h3>CONSUMER</h3>&nbsp; 
    <div id="prodgrid" class="hiddenDiv" align="center"> 
    <table id="production" class="scroll" cellpadding="0" cellspacing="0"></table> 
    <div id="pager" class="scroll" style="text-align:center;"></div> 
    </div> &nbsp;&nbsp; 

這是我的數據文件call_data.php我也有問題,在生成頁面總等:

<?php //MARTIN 
require_once('../../Connections/myconn.php'); 

$start = $_REQUEST['start']; 
$end  = $_REQUEST['end']; 
$project = $_REQUEST['project']; 
$year = $_REQUEST['year']; 

$query = mysql_query(' CALL martin ('.$start.', '.$end.', '.$year.', '.$project.');'); 

$i=0; 
$j=0; 


while($row = mysql_fetch_array($query,MYSQL_ASSOC)) { 
    $rows[$i]['id']=$row[txt_site_code]; 
    $rows[$i]['cell']=array($row[txt_site_code],$row[txt_site_name]); 

     for ($j=$start; $j<=$end;$j++) { 
     array_push($rows[$i]['cell'], $row['WEEK'.$j]); 
     } 
    $i++; 
} 

//this part I dunno how to create it dynamically 
echo '{ 
    "page": "1", 
    "total": "1", 
    "records": "1", 
    "rows" : '; 

echo json_encode($rows); 

echo '}'; 

?> 
+0

一個'for'一個數組聲明是一個語法錯誤。也許使用'push'? – Owlvark

回答

2

爲Owlvark說,你不應該這樣做一個for數組。

嘗試這樣:

var ColModel1 = []; 
ColModel1.push({name:'ID',index:'int_userid', hidden:false, align:'center', width:30, search:false}); 
for (j=start;j<=end;j++) { 
    ColModel1.push({name:'WEEK"+j+"',index:'WEEK"+j+"', align:'center', width:30, search:false}); 
} 
+0

謝謝.. @owlwark和manuel ...你們真的拯救了我的一天...有很多東西需要學習... – aznan

+0

找到了更新問題的解決方案。我只是添加eval:var mula = eval($(「#mula」)。val());解決了一切 – aznan