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=4 (単一の数字) と end=18 (2 桁の数字) の場合、CODE と SITE を除いて、週の colModel には何も得られませんでした。通常、start=1 または start と 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 に答える