仅当返回到另一页并重新访问该URL时才显示结果

仅当返回到另一页并重新访问该URL时才显示结果

问题描述:

We are displaying all results when user open page [orders.php ]

enter image description here

We are displaying results based on selected From & To Date,

enter image description here

once we click on "Reset" button selected Dates are resetting. but results are not displaying

enter image description here

values are displaying only when we go back to another page and again open the same url. [ assume going to products.php & revisit orders.php ]

html

<form name="frmSearch" method="post" action="">
    <input type="text"  id="post_at" value="<?php if($orderFromDate!=''){ echo $orderFromDate; }?>" name="post_at"  />       
    <input type="text"  id="post_at_to_date" value="<?php if($orderToDate!=''){ echo $orderToDate; }?>" name="post_at_to_date"  />
    <input type="submit" name="search" value="search"  />     
    <input type="button" value="Reset"  id="clear-dates" >
</form>

script

jQuery.datepicker.setDefaults({
showOn: "button",
buttonImage: "datepicker.png",
buttonText: "Date Picker",
buttonImageOnly: true,
dateFormat: 'yy-mm-dd'  
});
$(function() {
$("#post_at").datepicker();
$("#post_at_to_date").datepicker();
});

var __TEST_DATA__=eval('<?php echo getDesignerCollection();?>');
var grid_demo_id = "myGrid" ;
var dsOption= {
    fields :[   
        {name : 'entity_id'  }, 
        {name : 'entity_id'  },
        {name : 'created_at'},                  
    ],
    recordType : 'array',
    data : __TEST_DATA__
}   

function my_renderId(value ,record,columnObj,grid,colNo,rowNo)
    {
        var no= record[columnObj.fieldIndex];

        return "<input type='checkbox' value='"+record[0]+"' name='userID'/>";
    }

    var colsOption = [  
        {id: 'entity_id' , header: "Order Id" , width :"15",renderer : my_renderId},
        {id: 'entity_id' , header: "Order Id" , width :"75"},

        {id: 'created_at' , header: "Order Date" , width :"120"}

    ];

    var gridOption={
        id : grid_demo_id,  
        //height: "285",  //"100%", // 330, 
        pageSize:20,    
        pageSizeList : [5,10,15,20],
        container : 'myGrid', 
        replaceContainer : true,    
        dataset : dsOption ,
        columns : colsOption ,
        toolbarContent : 'nav goto | pagesize | filter state | sortable | search',
        onRowClick:function(value, record , cell, row,  colNO, rowNO,columnObj,grid){
        }
    };
    var mygrid=new Sigma.Grid(gridOption);
    Sigma.Util.onLoad( Sigma.Grid.render(mygrid) );

    function doFilter() {
        var filterInfo=[
            {
                fieldName : $('select[id=f_value2]').val(),
                logic : "startWith",
                value : Sigma.Util.getValue("f_value1")
            },
            {
                fieldName : Sigma.Util.getValue("f_fieldName12"),
                logic : "greatEqual",
                value : Sigma.Util.getValue("f_value12")
            }
        ]
        var grid=Sigma.$grid("myGrid");
        var rowNOs=grid.applyFilter(filterInfo); 
    }
    function doUnfilter(){
        var grid=Sigma.$grid("myGrid1");
        var rowNOs=grid.unfilterGrid();

    }   

php

function getDesignerCollection()
{
    $user_home = new USER();
    require_once '../../app/Mage.php';
    Mage::app(); 
    $stmts = $user_home->runQuery("SELECT * FROM tbl_users WHERE userID=:uid");
    $stmts->execute(array(":uid"=>$_SESSION['userSession']));
    $rows = $stmts->fetch(PDO::FETCH_ASSOC);
    if(isset($_POST['post_at']) && $_POST['post_at']!='')
    {
        $orderFromDate=$_POST['post_at']." 00:0:00";
    }
    else
    {
        $orderFromDate='';
    }
    if(isset($_POST['post_at_to_date']) && $_POST['post_at_to_date']!='')
    {
        $orderToDate=$_POST['post_at_to_date']." 59:59:59";
    }
    else{$orderToDate='';}
    $accountType=$rows['type'];
    if($accountType=="admin"){

        $order = Mage::getModel('sales/order')->getCollection()->addAttributeToFilter('designer_id',array('nin'=>'0'));
        if($orderFromDate!='')$order->addFieldToFilter('created_at',array('gteq'=>$orderFromDate));
        if($orderToDate!='')$order->addFieldToFilter('created_at',array('lteq'=>$orderToDate));
    }
    else
    {
        $order = Mage::getModel('sales/order')->getCollection()->addAttributeToFilter('designer_id',array('like' => '%'.$_SESSION['userSession'].'%'));
    }

    $i=0;
    foreach ($order as $orderData)  
    {

        $orderitems=$orderData['dproduct_id'];
        $orderitemsarray=explode(",",$orderitems);
        $k=0;

        $oDate = new DateTime($orderData['created_at']);
        $sDate = $oDate->format("Y-m-d");
        while($k < count($orderitemsarray))
        {
           if($orderitemsarray[$k]!='0')
          {

            $stmtorders = $user_home->runQuery("SELECT * FROM order_details WHERE designerorder_id=:designerorder_id");
            $stmtorders->execute(array(":designerorder_id"=>$orderData['entity_id']));
            $roworders = $stmtorders->fetch(PDO::FETCH_ASSOC);

            if($roworders['designerorder_id']==''){$dorderStatus="Unpaid";}else{$dorderStatus=$roworders['paid_status'];}

          $productdetail=Mage::getModel('catalog/product')->load($orderitemsarray[$k]); 
          $designerName=getDesignerName($productdetail->getDesignerID())." -(".$productdetail->getDesignerID().")";   
          $responce[]=array($orderData->getIncrementId(),$orderData->getIncrementId(),$orderitemsarray[$k],$productdetail->getName(),$designerName,$orderData['status'],$orderData['grand_total'],$orderData['customer_email'],$orderData['shipping_description'],$dorderStatus,$sDate);

         }
        $k++; $i++;
        }

    }       echo json_encode($responce);    

}   

You can use this small code :) in snippet i added some more code to detect page reload.

$("#clear-dates").click(function(){
 location.reload();
});

$("#clear-dates").click(function() {
  location.reload();
});
//You can ignor this part
$(window).bind('beforeunload',function(){
    return 'do you really want to leave?';
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="button" value="Reset" id="clear-dates">

</div>