When I pass a text value to the detail grid. I cannot get the value to display when I add a row. Below is my code – I have three grids. First is the master. Last this the grid I am trying to pass SPLOCATION in col INLOCATION so the user does not enter this information again. My final intention is the make this hidden anyway.
Any help would be great.
Code:
<?php
…
include("../../lib/inc/jqgrid_dist.php");
$g = new jqgrid($db_conf);
// set few params
$grid["caption"] = "StoneMor Partners – Cemetery Space Inventory";
$grid["detail_grid_id"] = "list3";
$grid["subgridparams"] = "SPID,SPOWNER,SPLOCATION";
$g->set_options($grid);
$g->set_actions(array("inlineadd"=>false));
// set database table for CRUD operations
$g->table = "CSISPACEP";
$wloc = "'".implode("','",$locations)."'";
// subqueries are also supported now (v1.2)
$g->select_command = "SELECT CSI.*,(select CONCAT(CONCAT(RTRIM(CUSTP.CUFNM),' '),TRIM(CUSTP.CULNM)) from CUSTP where CUSTP.CUCUST = CSI.SPOWNER) as OWNER,(select CONCAT(CONCAT(RTRIM(CSIINTERNP.INFIRST_NAME),' '),TRIM(CSIINTERNP.INLAST_NAME)) from CSIINTERNP where CSIINTERNP.INSPID = CSI.SPID) as INTERRED FROM CSISPACEP CSI where SPLOCATION in (".$wloc.")";
// If you want to customize columns params
$col = array();
$col["hidden"] = false;
$col["title"] = "SPID"; // caption of column
$col["name"] = "SPID";
$col["width"] = "10";
$cols[] = $col;
// If you want to customize columns params
$col = array();
$col["hidden"] = true;
$col["title"] = "SPOWNER"; // caption of column
$col["name"] = "SPOWNER";
$col["width"] = "5";
$cols[] = $col;
$col = array();
$spl = $g->get_dropdown_values("select distinct SPLOCATION as k, SPLOCATION as v from CSISPACEP where SPLOCATION in (".$wloc.")");
$col["stype"] = "select";
$col["searchoptions"] = array("skipEmpty"=>true, "value" => ":–All–;".$spl, "separator" => ":", "delimiter" => ";");
$col["title"] = "Location"; // caption of column
$col["name"] = "SPLOCATION";
$col["width"] = "20";
$col["sortable"] = true;
…
$g->set_columns($cols);
$g->set_actions(array(
"add"=>$roles['add'],
"edit"=>$roles['edit'],
"delete"=>$roles['delete'],
"view"=>$roles['view'],
"rowactions"=>false,
"export"=>$roles['export'],
"autofilter" => true,
"search" => false,
"inlineadd" => false,
"showhidecolumns" => false
)
);
/** Define Modify Owner Grid***/
$h = new jqgrid($db_conf);
….
/*** End of Modify Owner *****/
/** Define Internment Grid***/
$i = new jqgrid($db_conf);
// set few params
//$SPID = intval($_GET["SPID"]);
$SPID = (empty($_GET["SPID"])?0:$_GET["SPID"]);
$SPLOCATION = (empty($_GET["SPLOCATION"])?0:$_GET["SPLOCATION"]);
…
$e["on_insert"] = array("add_Intern", null, true);
$i->set_events($e);
…
// subqueries are also supported now (v1.2)
$i->select_command = "SELECT * FROM CSIINTERNP where INSPID = '".$SPID."'";
…
// If you want to customize columns params
$col = array();
$col["hidden"] = false;
$col["title"] = "LOCATION"; // caption of column
$col["name"] = "INLOCATION";
$col["width"] = "20";
$col["editoptions"] = array("size"=>20, "defaultValue"=>$SPLOCATION);
$col["sortable"] = false;
$col["editable"] = true;
$col["viewable"] = true;
$col["search"]=false;
$cols2[] = $col;
…
$i->set_columns($cols2);
$i->set_actions(array(
"add"=>$roles['add'],
"edit"=>$roles['edit'],
"delete"=>$roles['delete'],
"view"=>$roles['view'],
"rowactions"=>false,
"export"=>false,
"autofilter" => false,
"search" => false,
"inlineadd" => false,
"showhidecolumns" => false
)
);
function add_Intern(&$data)
{
$SPLOCATION = $_GET["SPLOCATION"];
$data["INLOCATION"] = $SPLOCATION;
}
/*** End of Internment *****/
// render grid
$out = $g->render("list1");
$out2 = $h->render("list2");
$out3 = $i->render("list3");
?>
Hello,
The defaultValue option will not work with detail grid, as it is rendered once when making grid html.
You can use $_GET["SPLOCATION"] in callback event, as you used in add_tern(&$data) function.
You will need an updated build, which i am emailing you.
Kindly override in lib/inc.
Abu,
Still not getting the INLOCATION value filled with SPLOCATION. Code above is still valid.
Thanks
If you are setting it in insert query data, it should be:
$data["params"]["INLOCATION"] = $SPLOCATION;