jqgrid:上个月的数据无法显示

时间:2011-09-08 07:41:14

标签: jquery-ui jqgrid jquery-ui-datepicker

我不知道我的jqgrid会发生什么,我的数据第一次可以显示(所有已输入数据库的数据)。

但是,在我尝试从jquery datepicker输入日期格式之后: datepicker

我选择08/03/2011但实际日期是09/09/2011。 jqgrid无法显示该数据,但在数据库中已经输入了数据。 你能告诉它为什么会发生吗?


修改

这是输入页面:

    <script type="text/javascript" language="javascript" src="js/jquery-1.4.2.min.js"></script>
    <script type="text/javascript" language="javascript" src="js/jquery-ui-1.8.1.custom.min.js"></script>
    <script type="text/javascript" language="javascript" src="js/jquery.datePicker-2.1.2.js"></script>
    <script type="text/javascript" language="javascript" src="development-bundle/ui/jquery.ui.datepicker.js"></script>

<script>
        $(function() {
                        $(".datepicker").datepicker({ dateFormat:'yy-mm-dd'});
                        });
  </script>

<input type="text" id="datepicker" name="prob_date" class="datepicker">

我收到了一个下载的文件夹jqgrid_demo38 并为显示页面(使用jqgrid):

    <link rel="stylesheet" type="text/css" media="screen" href="jqGrid/css/ui.jqgrid.css" />
    <link rel="stylesheet" type="text/css" media="screen" href="jqGrid/plugins/ui.multiselect.css" />
        <script src="jqGrid/js/i18n/grid.locale-en.js" type="text/javascript"></script>
        <script src="jqGrid/js/jquery.jqGrid.min.js" type="text/javascript"></script>
        <script type="text/javascript" language="javascript" src="js/jquery-1.4.2.min.js"></script>
        <script type="text/javascript" language="javascript" src="js/jquery-ui-1.8.1.custom.min.js"></script>

我只是无法显示当月没有输入的数据。

Jqgrid

dounfinish.php

2 个答案:

答案 0 :(得分:0)

在这里猜猜,但我猜你正试图在你的日期选择器上设置一个maxDate。如果是这样,那么你传递给maxDate的日期可能不正确。

我建议在各种浏览器中为maxDate创建一致的日期对象:

<强> HTML:

<input name="datetime" class="datetime" type="text" data-maxdatetime="<YOUR MAX DATE FROM DB HERE>" value="<SOME PRE-SELECTED DATETIME>" />

<强> JS:

var max_date = $(".datetime").data("maxdatetime");
$(".datetime").datepicker({
  maxDate: parseISO8601(max_date)
});


/**
* http://jibbering.com/faq/#parseDate
* Parses string formatted as YYYY-MM-DD to a Date object.
* If the supplied string does not match the format, an 
* invalid Date (value NaN) is returned.
* @param {string} dateStringInRange format YYYY-MM-DD, with year in
* range of 0000-9999, inclusive.
* @return {Date} Date object representing the string.
*/
function parseISO8601(dateStringInRange) {
  var isoExp = /^\s*(\d{4})-(\d\d)-(\d\d)\s*$/,
      date = new Date(NaN), month,
      parts = isoExp.exec(dateStringInRange);

  if(parts) {
    month = +parts[2];
    date.setFullYear(parts[1], month - 1, parts[3]);
    if(month != date.getMonth() + 1) {
      date.setTime(NaN);
    }
  }
  return date;
}

答案 1 :(得分:0)

它有效......

我在查询中删除了一些命令:

$start = $limit*$page - $limit; // do not put $limit*($page - 1)
$SQL = "SELECT * FROM oqc_defect ORDER BY $sidx $sord /*LIMIT $start , $limit*/";
$result = mysql_query( $SQL ) or die("Couldnt execute query.".mysql_error());

我从查询中被禁用LIMIT

但是,我不知道为什么它可行。可能是另一位读者可以解释这一点。