PHPackages                             djuki/jqgrider - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. djuki/jqgrider

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

djuki/jqgrider
==============

Generating jqGrid from PHP

1.0.0(13y ago)1304MITPHPPHP &gt;=5.3.0

Since Sep 14Pushed 13y ago4 watchersCompare

[ Source](https://github.com/Djuki/jqgrider)[ Packagist](https://packagist.org/packages/djuki/jqgrider)[ Docs](https://github.com/Djuki/jqgrider)[ RSS](/packages/djuki-jqgrider/feed)WikiDiscussions master Synced 3d ago

READMEChangelogDependenciesVersions (2)Used By (0)

\#jqGrider

\##Introduction

jqGrider is PHP library for generating jqGrid without typing JavaScript code. I created jqGrider for admin part of my applications. I wanted to without much effort present my database tables and datas into ajax grid.

jqGrid is at this moment most complete full-stack javascript grid. At this moment jqGrider supotring only basic and most needed functionality of jqGrid.

With jqGrider you can:

- Present data from database table
- Present array data in grid
- Search grid data with any operator
- Refresh data grid
- Paginate results
- Add custon anonymous function for columns

\##Code examples

### basic usage of jgGrider

[](#basic-usage-of-jggrider)

Your main action presenting grid

```
public function action_grid()
{
    $view = $this->app->forge('View', 'grid');

	$grid = new \JqGrider\Grid(\JqGrider\Grid::DATA_TYPE_JSON);
	$grid
	->addColumn('ID', 'id', 200)
	->addColumn('Full Name', 'name', 450)
	->setUrl('http://localhost/fuelphp2/public/index.php/welcome/grid_data');

	$view->set('grid_js', $grid->getJavaScriptCode(), false);

	return $view;
}

```

Your view with grid

```

```

Ajax action which will return grid data with ajax call

```
public function action_grid_data()
{

	$grid = new \JqGrider\Grid(\JqGrider\Grid::DATA_TYPE_JSON);
	$grid
	->setRepository(new \App\Model\User())
	->addColumn('ID', 'id', 200)
	->addColumn('Full Name', 'name', 450);

	$grid->printRespositoryData();
}

```

User model need to implement `IGridRepository` and define two methods `getData` and `countDataRows`.

`getData` can return object with data, and it must have properties like column names. Also it can returna array and key names also must be named as column names.

`countDataRows` will count data rows considering conditions.

Object `Conditions` representing search query, and it wil help you to generate database query to calculate rows in search conditions.

```
namespace App\Model;

use JqGrider\Data\IGridRepository;
use JqGrider\Data\Conditions;

class User implements IGridRepository
{
protected $pdo;

public function __construct()
{
    // Connect on database with pdo object for example
}

public function getData(Conditions $dataConditions)
{
	$offset = $dataConditions->page == 1 ? 0 : $dataConditions->rowsLimit * ($dataConditions->page - 1);
	$sql = 'SELECT id, name FROM user ';

	if ($dataConditions->search === 'true')
	{
		$sql .= ' WHERE '.$dataConditions->searchCondition;
	}

	$sql .=' ORDER BY '.$dataConditions->sortBy.' '.$dataConditions->sort;

	$sql .= ' LIMIT '.$dataConditions->rowsLimit.' OFFSET '.$offset;

	$statement = $this->pdo->prepare($sql, array(\PDO::ATTR_CURSOR => \PDO::CURSOR_FWDONLY));
	@$statement->bindParam(':grid_search_string',$dataConditions->searchString);

	if ($statement->execute())
	{
		return $statement->fetchAll(\PDO::FETCH_CLASS);
	}
}

public function countDataRows(Conditions $dataConditions)
{
	$sql = 'SELECT count(id) FROM user';
	if ($dataConditions->search === 'true')
	{
		$sql .= ' WHERE '.$dataConditions->searchCondition;
	}
	if ($result = $this->pdo->query($sql))
	{
		return $result->fetchColumn();
	}
}
}

```

\###Using anonymous functions

Anonymous function can be added into `Column` object to change column content.

```
        $nameFunction = function ($content)
		{
			return 'Member name is: '.$content;
		};

		$grid = new Grid(Grid::DATA_TYPE_JSON);
		$grid->addColumn('Full Name', 'name', 450, $nameFunction);

```

\###Using local data for grid

```
public function action_grid()
{
	$view = $this->app->forge('View', 'grid');

	$grid = new Grid(Grid::DATA_TYPE_JSON);
	$grid
	->addColumn('ID', 'id', 200)
	->addColumn('Full Name', 'name', 450);

	$grid->setLocalData(array(
		array('id' => 4, 'name' => 'William Harrison'),
		array('id' => 5, 'name' => 'Erick Hawkins'),
		array('id' => 6, 'name' => 'Gene Autry'),
	));

	$view->set('grid_js', $grid->getJavaScriptCode(), false);
	return $view;
}

```

###  Health Score

27

—

LowBetter than 49% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity11

Limited adoption so far

Community11

Small or concentrated contributor base

Maturity58

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Unknown

Total

1

Last Release

4990d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/3ce751675f59fc6ab1be5b732eaa815b827c586ea665fa780fe790e5e9e1aac3?d=identicon)[Djuki](/maintainers/Djuki)

---

Top Contributors

[![Djuki](https://avatars.githubusercontent.com/u/416411?v=4)](https://github.com/Djuki "Djuki (7 commits)")

---

Tags

gridjqgrid

### Embed Badge

![Health badge](/badges/djuki-jqgrider/health.svg)

```
[![Health](https://phpackages.com/badges/djuki-jqgrider/health.svg)](https://phpackages.com/packages/djuki-jqgrider)
```

###  Alternatives

[desandro/masonry

Cascading grid layout library

16.7k424.4k1](/packages/desandro-masonry)[kartik-v/yii2-grid

Yii 2 GridView on steroids. Various enhancements and utilities for the Yii 2.0 GridView widget.

5576.6M179](/packages/kartik-v-yii2-grid)[mgallegos/laravel-jqgrid

Laravel jqGrid package allows you to easily integrate the popular jQuery Grid Plugin (jqGrid) into your Laravel application.

7115.5k1](/packages/mgallegos-laravel-jqgrid)[himiklab/yii2-sortable-grid-view-widget

Sortable modification of standard Yii2 GridView widget

80351.1k7](/packages/himiklab-yii2-sortable-grid-view-widget)[codenco-dev/nova-grid-system

A Laravel Nova tool to have a grid system

80300.1k](/packages/codenco-dev-nova-grid-system)[kotchuprik/yii2-sortable-widgets

Implementation Rubaxa/Sortable for Yii2. Sortable grid view inside.

61132.2k6](/packages/kotchuprik-yii2-sortable-widgets)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
