dhtmlxconnector:data_management_how-tos_general [DHX documentation]

PHP Connector DHTMLX

General how-tos

How can I assign aliases to DB columns?

Using render_sql() or render_table() you can assign aliases to required tables or columns. To do this, in sql statement you should use word 'as' (as in any usual sql statement), in other parameters - parentheses.

$grid->render_table("tableA","id","name,price(product_price)");
//or
$grid->render_sql("Select *,tableA.id as aid from tableA, tableB  where  tableA.id=tableB.id", "tableA.id(aid)","name,price(product_price)");

How can I attach event?

To attach event you should use event→attach(). For more details of this topic, see 'Event handling' quide.

$conn->event->attach(event_name,handlerFunc);

How can I check value of an item?

Using get_value() method you can check value of any item.

$grid->get_value($name);

How can I create custom database error message?

To add a custom error message you can use the event onDBError and write the desired message in the appropriate handler.

function doOnDBError($action, $exception){
       $action->set_response_text("Some details about error")
}
$conn->event->attach("onDBError",doOnDBError);

How can I deny access to a certain operation?

By default, connector allows all operations. To deny some operation use deny(name_of_operation) method that can get one of the following:read/update/insert/delete. For more details see 'Security' guide.

$conn->access->deny("update");

How can I customize content of a cell?

You can use beforeRender event to define how content of a cell must be formatted.

function custom_data($row){
      $data = $row_get_value("some_column");
      $row->set_value("some_column", "$data <input type='text' />")
}
 
$grid->event->attach("beforeRender","custom_data");

In the sample above, the grid will have custom content - html input 'text'.

How can I filter data on server-side?

You have 3 ways to filter data on server backend:

  • by specifying additional parameters in URL (on client-side)

    grid.load("some.php?connector=true&dhx_filter[1]=mask");
  • by using in-header filter types while component configuration (on client-side)

    mygrid.setHeader("Column A, Column B");
    mygrid.attachHeader("#connector_text_filter,#connector_select_filter")
  • by means of beforeRender event (on server-side)

    function custom_filter($data){
      ...
    }
    $conn->event->attach("beforeRender","custom_filter");

See the guide 'Filtration' for more information.

How can I handle errors and log them?

You can enable logging using enable_log() method. For more details see 'Error handling and logging' guide.

$conn->enable_log("path to log file");// to show short info on client-side
//or
$conn->enable_log("path to log file", true);// to show full info on client-side

How can I set value to an item?

Using set_value() method, you can set value to any item of component.

$dataItem->set_value($name,$value)

How can I sort data on server-side?

You have 2 ways to sort data on server backend:

  • by specifying additional parameters in URL (on client-side)

    grid.load("some.php?connector=true&dhx_sort[2]=asc");
  • by using sorting type 'connector' while component configuration (on client-side)

    grid.setColSorting("connector,str,na);

See the guide 'Sorting' for more information.

How can I validate data on client-side

dataProcessor lets you validate data on client-side. Use setVerificator(index,method) method to define the appropriate columns and validators. See details in the related chapter of dataProcessor' documentation.

dp.setVerificator(column_index,verification_func)

How can I validate data on server-side

To perform server-side validation you should use one of the dhtmlxConnector events stated below and specify the needed validation rules in the appropriate events' handlers functions:

function validate($data){
...
}
$conn->event->attach("beforeProcessing","validate");

For more details of server-side validation, see guide 'Validation'.