在jqGrid中显示数据数组,如果数据库中有更改,则重新加载网格不起作用?

时间:2013-04-05 15:19:35

标签: php jquery arrays jqgrid jqgrid-php

在使用jqGrid时感到困惑因为我已经可以成功地从数据库中检索记录并将其值作为数组传递给我,我尝试使用直接从数据库到jqGrid但是我遇到了问题,如果我是不行的使用存储过程。重新加载网格在使用查找记录功能后工作,我的问题是当我在我的数据库中直接手动添加/删除/编辑时,它不会在重新加载网格后显示更改,如何才能解决此问题?

顺便说一句,我的代码基于link

这是我的网格代码:

    <?php

require_once 'jqSuitePHP_4_4_4_0/jq-config.php';
require_once 'jqSuitePHP_4_4_4_0/php/jqGrid.php';
require_once 'jqSuitePHP_4_4_4_0/php/jqGridArray.php';

include('DB_Functions.php');

$db = new DB_Functions();

$conn = new jqGridArray();
$grid = new jqGridRender($conn); 

$model = array
    (
        array(
            'name'=>'User ID', 
            'width'=>80,
            'formatter'=>'integer',
            'formatoptions'=>array
                (
                    'sorttype'=>'integer'
                )
            ),

        array
        (
            'name'=>'First Name', 
            'width'=>100
        ),

        array
        (
            'name'=>'Middle Name', 
            'width'=>100
        ),

        array
        (
            'name'=>'Last Name', 
            'width'=>100
        ),

        array
        (
            'name'=>'Age',
            'width'=>80
        ),

        array
        (
            'name'=>'Address',
            'width'=>150
        )
    );

$grid->setColModel($model);
$grid->setGridOptions(array("datatype"=>"local"));

foreach($db->get_users() as $user)
{
    $data[] = array
    (
        'User ID'=>$user['user_id'],
        'First Name'=>$user['user_fname'],
        'Middle Name'=>$user['user_mname'],
        'Last Name'=>$user['user_lname'],
        'Age'=>$user['user_age'],
        'Address'=>$user['user_address']
    );
}

$grid->navigator = true;
$grid->csvsep=","; 
$grid->setNavOptions
    (
        'navigator', 
        array
        (
            "csv"=>true,
            "pdf"=>true,
            "add"=>false,
            "edit"=>false,
            "del"=>false,
            "view"=>true, 
            "excel"=>true
        )
    );

$grid->callGridMethod("#grid", 'addRowData', array("User ID", $data));
$grid->renderGrid('#grid','#pager',true, null, null, true,true); 
$conn = null;

?>

这是我的数据库功能代码

 <?php

class DB_Functions
{
    private $pdo;

    public function __construct()
    {
        $this->pdo = new PDO
        (
            'mysql:host=127.0.0.1;
            dbname=jqGrid_tester;
            charset=utf-8', 
            'root'
        );
    }

    public function get_users()
    {
        $stmt = $this->pdo->prepare
                (
                    'call get_users'
                );

        $stmt->execute();

        return $stmt->fetchAll
            (
                PDO::FETCH_ASSOC
            );
    }
}

?>

0 个答案:

没有答案