dhtmlXTree parent value Update

[i]Hi!
I have small problem in updating tree item parametrs

first i create tree[/i]

tree = new dhtmlXTreeObject(“treeboxbox_tree”, “100%”, “100%”, 0);
tree.setSkin(‘dhx_skyblue’);
tree.setImagePath(“codebase/imgs/csh_bluebooks/”);
tree.enableItemEditor(true);
tree.enableDragAndDrop(true);

tree.setXMLAutoLoading(“treeconnector.php”);
tree.loadXML(“treeconnector.php”);
var dp = new dataProcessor(“treeconnector.php”);
dp.init(tree);

and add some function to addChild

    function addChildItem(id,name,color,type)
	{

var newId=(new Date()).valueOf();
tree.insertNewItem((tree.getSelectedItemId()||‘0’),newId,‘new child’);
tree.selectItem(newId);
tree.focusItem(newId);
tree.setItemColor(newId, “#999”, “#000000”);
tree.editItem(newId);
}

second i loading data from database

$tree->render_sql(“SELECT id,company_name,parent FROM customers ORDER BY priority DESC”,“id”,“company_name,parent”,“”,“parent”);

or

$tree->render_sql(“SELECT id,company_name,parent FROM customers ORDER BY priority DESC”,“id”,“company_name”,“”,“parent”);

In firts sql_render I can drug&drop tree item - parent value successfoly updated BUT i can’t greate new element :

1) drop element on new parent item, log:

DataProcessor object initialized
77_tr_id => 77
77_tr_pid => 71
77_tr_order => 0
77_tr_text => zxz
77_!nativeeditor_status => updated
ids => 77

Row data [77]
tr_id => 77
parent => 71
tr_order => 0
company_name => zxz
!nativeeditor_status => updated

UPDATE customers SET company_name=‘zxz’,parent=‘71’ WHERE id=‘77’

Edit operation finished
0 => action:updated; sid:77; tid:77;

Done in 0.0227341651917s

2) create new element

DataProcessor object initialized
1264697090801_tr_id => 1264697090801
1264697090801_tr_pid => 2
1264697090801_tr_order => 4
1264697090801_tr_text => new child
1264697090801_!nativeeditor_status => inserted
ids => 1264697090801

Row data [1264697090801]
tr_id => 1264697090801
parent => 2
tr_order => 4
company_name => new child
!nativeeditor_status => inserted

INSERT INTO customers(company_name,parent,parent) VALUES (‘new child’,‘2’,‘2’)

Edit operation finished
0 => action:error; sid:1264697090801; tid:1264697090801;

Done in 0.00555896759033s

In second sql_render new Item creating successfoly, BUT if i moving elements on tree - new parent is not saving - updating only name :

====================================
Log started, 28/01/2010 01:01:04

DataProcessor object initialized
70_tr_id => 70
70_tr_pid => 1
70_tr_order => 1
70_tr_text => New child
70_!nativeeditor_status => updated
ids => 70

Row data [70]
tr_id => 70
parent => 1
tr_order => 1
name => New child
!nativeeditor_status => updated

UPDATE customers SET name=‘New child’ WHERE id=‘70’

Edit operation finished
0 => action:updated; sid:70; tid:70;

Done in 0.00433802604675s

i create this on server side, it’s work, but not true:

    function insertData($action){
     $name=$action->get_value("company_name");
     $parent=$action->get_value("parent");
 $sql="INSERT INTO customers(company_name,parent) VALUES ('$name','$parent')";
 mysql_query($sql) or die(mysql_error());

    }

$tree->event->attach(“beforeInsert”,insertData);
$tree->render_table(“customers”,“id”,“company_name,parent”,“”,“parent”);

Hello,
this command is correct:

$tree->render_sql(“SELECT id,company_name,parent FROM customers ORDER BY priority DESC”,“id”,“company_name”,“”,“parent”);

Regarding the second code snippet. Try to modify it as follows :

//$tree->event->attach(“beforeInsert”,insertData);
$tree->render_table(“customers”,“id”,“company_name”,“”,“parent”);

If the solutions provided above won’t help, try to use attached files - just replace originals with them
connector.zip (12.1 KB)

Thx, Alexandra!

[i]I have some different problem - i creating tree from 2 mysql tables, do you can write some sample to selecting from two tables?

1 table - customers[/i]
id | company_name
1 |some_company1
2 | some_company2

2 table - customers_person
id | parent | name
1 | 2 | some_person1
2 | 2 | some_person2

The number 2 in second table in row parent - is id of some_company2. “customer” id loaded from statik xml.

<?xml version='1.0' encoding='iso-8859-1'?>

I do sql-query in phpmyadmin to database for selecting data:

SELECT CONCAT( ‘c’, ‘’, id ) AS ID, company_name AS name, ‘customer’ AS parentid
FROM customers
UNION
SELECT CONCAT( ‘p’, '
’, id ) AS ID, name, CONCAT(‘c’,’_’, parent) AS parentid
FROM customers_person

Returned table content:

id | name | parentid
c_1 | some_company1 | customer
c_2 | some_company2 | customer
p_1 | some_person1 | c_2
p_2 | some_person2 | c_2

[i]But if i trying use this sql for rendering, apache service shutdown & request return is empy. :wink:

Log wiew ciclyed query ;( :[/i]

SELECT CONCAT( ‘p’, ‘’, id ) AS ID, name, CONCAT(‘c’,’’, parent) AS parentid
FROM customers_person

SELECT CONCAT( ‘c’, ‘’, id ) AS ID, company_name AS name, ‘customer’ AS parentid
FROM customers
UNION
SELECT CONCAT( ‘p’, '
’, id ) AS ID, name, CONCAT(‘c’,’_’, parent) AS parentid
FROM customers_person

SELECT CONCAT( ‘c’, ‘’, id ) AS ID, company_name AS name, ‘customer’ AS parentid
FROM customers
UNION
SELECT CONCAT( ‘p’, '
’, id ) AS ID, name, CONCAT(‘c’,’_’, parent) AS parentid
FROM customers_person

SELECT CONCAT( ‘c’, ‘_’, id ) AS ID, company_name AS name, ‘customer’ AS parentid
FROM customers
UNION

Js code:
tree= new dhtmlXTreeObject(“treeboxbox_tree”, “100%”, “100%”, 0);
tree.setSkin(‘dhx_skyblue’);
tree.setImagePath(“codebase/imgs/csh_bluebooks/”);
//tree.setOnOpenHandler(tonopen);
tree.loadXML(“home.xml”);
tree.setXMLAutoLoading(“tree_connector.php”);

i use CREATE WIEV table, problem is resolved