jQWidgets Forums
jQuery UI Widgets › Forums › Grid › Solution keyvalue isn't working › Reply To: Solution keyvalue isn't working
Peter, also data source php code :
<?php
header(‘Content-Type: text/plain; charset=UTF-8’);
require_once( ‘conf.php’ );
include( ‘adodb5/adodb.inc.php’ );
ini_set( ‘mssql.charset’, ‘LITHUANIAN_CI_AS’ );
$conn = NewADOConnection( ‘ado_mssql’ );
$conn->Connect( $myCnt );
$tot_rec = 0;
if ( isset( $_GET[ ‘lenta’ ] ) )
$lenta = $_GET[ ‘lenta’ ];
if ( isset( $_GET[ ‘lent_st’ ] ) )
{
$lent_st = $_GET[ ‘lent_st’ ];
$lent_se = implode( “,”, $lent_st );
}
if ( isset( $_GET[ ‘lent_id’ ] ) )
$lent_id = $_GET[ ‘lent_id’ ];
if ( isset( $_GET[ ‘lent_qr’ ] ) )
$lent_qr = $_GET[ ‘lent_qr’ ];
$query = “SELECT ” . $lent_se . ” FROM ” . $lenta; //. ” WHERE prodid=’gu000033′”;
$qry = $query;
if ( isset( $_GET[ ‘sortdatafield’ ] ) )
{
$sortfield = $_GET[ ‘sortdatafield’ ];
$sortorder = $_GET[ ‘sortorder’ ];
if ( $sortfield != NULL )
$query = $query . ” ORDER BY ” .$sortfield . ” ” . $sortorder;
}
if ( isset( $_GET[ ‘filterscount’ ] ) )
{
$filterscount = $_GET[ ‘filterscount’ ];
if ( $filterscount > 0 )
{
$where = ” WHERE (“;
$tmpdatafield = “”;
$tmpfilteroperator = “”;
for ( $i = 0; $i < $filterscount; $i ++ )
{
$filtervalue = $_GET[ “filtervalue” . $i ];
$filtervalue = iconv( “UTF-8”, “CP1257”, $filtervalue );
$filtercondition = $_GET[ “filtercondition” . $i ];
$filterdatafield = $_GET[ “filterdatafield” . $i ];
$filteroperator = $_GET[ “filteroperator” . $i ];
if ( $tmpdatafield == “” )
$tmpdatafield = $filterdatafield;
else if ( $tmpdatafield <> $filterdatafield )
$where .= “)AND(“;
else if ( $tmpdatafield == $filterdatafield )
{
if ( $tmpfilteroperator == 0 )
$where .= ” AND “;
else $where .= ” OR “;
}
// build the “WHERE” clause depending on the filter’s condition, value and datafield.
switch( $filtercondition )
{
case “CONTAINS”:
$where .= ” ” . $filterdatafield . ” LIKE ‘%” . $filtervalue .”%'”;
break;
case “DOES_NOT_CONTAIN”:
$where .= ” ” . $filterdatafield . ” NOT LIKE ‘%” . $filtervalue .”%'”;
break;
case “EQUAL”:
$where .= ” ” . $filterdatafield . ” = ‘” . $filtervalue .”‘”;
break;
case “NOT_EQUAL”:
$where .= ” ” . $filterdatafield . ” <> ‘” . $filtervalue .”‘”;
break;
case “GREATER_THAN”:
$where .= ” ” . $filterdatafield . ” > ‘” . $filtervalue .”‘”;
break;
case “LESS_THAN”:
$where .= ” ” . $filterdatafield . ” < ‘” . $filtervalue .”‘”;
break;
case “GREATER_THAN_OR_EQUAL”:
$where .= ” ” . $filterdatafield . ” >= ‘” . $filtervalue .”‘”;
break;
case “LESS_THAN_OR_EQUAL”:
$where .= ” ” . $filterdatafield . ” <= ‘” . $filtervalue .”‘”;
break;
case “STARTS_WITH”:
$where .= ” ” . $filterdatafield . ” LIKE ‘” . $filtervalue .”%'”;
break;
case “ENDS_WITH”:
$where .= ” ” . $filterdatafield . ” LIKE ‘%” . $filtervalue .”‘”;
break;
}
if ($i == $filterscount – 1)
{
$where .= “)”;
}
$tmpfilteroperator = $filteroperator;
$tmpdatafield = $filterdatafield;
}
$query = $query . $where;
$tot_rec ++;
}
}
$fvr = $_GET[ ‘recordstartindex’ ];
$lvr = $_GET[ ‘recordendindex’ ];
$rcnt = $lvr – $fvr;
$rs = $conn->execute( $query );
$trw = $rs->RecordCount();
$rs->Close();
$rs = null;
$rs = $conn->SelectLimit( $query, $rcnt, $fvr ) or die( “SQL klaida !” );
$rs->MoveFirst();
while ( !$rs->EOF )
{
$a = array();
for ( $i = 0; $i < $rs->FieldCount(); $i ++ )
{
$clnm = $lent_st[ $i ];
if ( $clnm != ‘name’ )
$retVar = strval( $rs->Fields( $clnm ) );
else
$retVar = iconv( “CP1257”, “UTF-8”, $rs->Fields( $clnm ) );
$a[ $clnm ] = $retVar;
}
$rtn[] = $a;
$rs->MoveNext();
}
$rs->Close();
$rs = null;
$conn->Close();
$conn = null;
$ret[] = array( ‘TotalRows’ => $trw, ‘Rows’ => $rtn );
echo json_encode( $ret );
?>