1

我在网上看到了一些好的教程......但不知何故我无法申请或不知道如何申请。

无论如何,这就是我想做的:

用户将添加开始周和结束周

所以 colModel 将是:

  1. id,例如 int_weekid
  2. 从开始周和结束周生成,例如第 2 周到第 5 周

colModel 将 > int_weekid | 第 2 周 | 第 3 周 | 第 4 周 | 第 5 周

我尝试这样做,但出了点问题。有人可以帮助我吗?请@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 */

}); 

更新:

成功动态添加 colModel 后,我发现了一个奇怪的问题......假设我在 2012 年有 50 周,当我把 start=1 和 end=50 没问题时,一切看起来都很好.. 但是当我键入值时对于 start=4(单个数字)和 end=18(两位数),除了 CODE 和 SITE 之外,我一周 colModel 没有得到任何东西。如果它 start=1 或 start=1 或两者都有,我通常不会遇到任何问题和 end是单数还是两者都是双数..下面是我的代码..希望有人可以帮助我..@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 '}'; 

?>
4

1 回答 1

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});
}
于 2013-06-03T07:27:19.773 回答