2013-06-02 239 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