Icontem

File: examples/4gl/ex_gridContainer.lib

Recommend this page to a friend!
  Classes of philippe thomassigny  >  WAJAF  >  examples/4gl/ex_gridContainer.lib  >  Download  
File: examples/4gl/ex_gridContainer.lib
Role: Auxiliary data
Content type: text/plain
Description: Auxiliary data
Class: WAJAF
Build single page applications
Author: By
Last change: patch 3.0.4
Date: 1 year ago
Size: 2,304 bytes
 

Contents

Class file image Download
<?php

/* We simulate a table with 10 records.
   We simulate insert, update, delete but do not do it really
*/
class ex_gridContainer
{
  function mygrid()
  {
    $order = null;
    if (isset($_POST['Order']))
      $order = $_POST['Order'];
    if (isset($_POST['key']))
      $key = $_POST['key'];
    if (!$order)
      return json_encode( array('error' => true, 'errormessage' => 'Error: there is no order or mode to listen to the form' ));

    switch($order)
    {
      case 'get':
        $r = $this->getData();
        return json_encode($r);
      
      case 'getrecord':
        $r = $this->getRecord($key);
        return json_encode($r);
      case 'first':
        $r = $this->getRecord(1);
        return json_encode($r);
      case 'last':
        $r = $this->getRecord(10);
        return json_encode($r);
      case 'previous':
        if ($key > 1)
          $key--;
        $r = $this->getRecord($key);
        return json_encode($r);
      case 'next':
        if ($key < 10)
          $key++;
        $r = $this->getRecord($key);
        return json_encode($r);
      case 'submit':
        break;
    }

    // randomly return a sucess or an error
    if (rand(0, 1000) < 500)
      return json_encode( array('success' => true ));
    return json_encode( array('success' => false, 'messages' => array('text' => 'Error: This is a simulated error from the server. It happens randomly to show how the errors are handled.')));
  }
  
  function getData()
  {
    $data = null;
    if (isset($_POST['data']))
      $data = json_decode($_POST['data']);
    
    if (!$data)
    {
      $data = array(array(0, 49));
    }
    $rec = array('total' => 10000, 'row' => array());
    foreach($data as $set)
    {
      // gets the 50 first records
      // results are 0 indexed, records are 1 indexed
      for ($i = $set[0]; $i <= $set[1]; $i++)
      {
        $rec['row'][$i] = $this->getRecord($i+1);
      }
    }
    // flag "fullload" is not set since we load only a part of the dynamic data
    return $rec;
  }

  function getRecord($key)
  {
    if (!$key || !is_numeric($key) || $key < 1 || $key > 10000)
      return null;
    return array('key' => $key, 'name' => 'Name of '.$key);
  }
}

?>