No error server side, but no attempts to update either

I have a DataStore on the client and I have attached a grid to the dataStore, and it is loading the data. There is also a form bound to the grid.

When I make a change to the data in the form, I can see that it is submitting the ‘update’ post to the server. The server, however, is returning the current table, without updating the data.

I turned on Data connector logging on the server, and it is only showing the "Select * " query. Again, no attempt to update.

Here’s my server side code

	require("connector/data_connector.php");

	$res=mysql_connect("localhost","XXXXX","XXXXXX");
	mysql_select_db("XXXXXX");
	$userConn = new DataConnector($res,"MySQL");
	$userConn->enable_log("logs/admin_datalog.txt");
	$userConn->render_sql("SELECT * FROM users", 'id', " username, password, firstname, lastname");

Here’s the datalog.txt


====================================
Log started, 24/10/2011 05:10:33
====================================

SELECT  * FROM users

Done in 0.01502799987793s



====================================
Log started, 24/10/2011 05:10:42
====================================

SELECT  * FROM users

Done in 0.0011248588562012s



====================================
Log started, 24/10/2011 05:10:10
====================================

SELECT  * FROM users

Done in 0.012408971786499s



====================================
Log started, 24/10/2011 05:10:20
====================================

SELECT  * FROM users

Done in 0.0010349750518799s

Is there something else I need to do to enable CRUD? I am using dhtmlX 3.0 Professional.

Thank you,
Rob

PS - I had a problem that when I submitted the data, it was popping an “Error type: LoadXML” error. (I was using JSONDataConnector and type:“json” on the client.) That forced me to switch to XML, and I haven’t had that error anymore. But the updates still aren’t occuring…

If you are using connectors on server side, you need to include connector.js on client side ( which is probably missed in your case )

Stanislav,

Good catch. Unfortunately, including the connector.js file doesn’t change anything. The client is posting to the server, and the server is responding with the entire table, without making the changes.

I tried changing the dataProcessor transaction mode to “GET”, but still the same results.

There is also an extra “value:undefined” getting sent to the server. It isn’t part of the grid or form, so I’m at a loss as to what it is referring to.

Here’s what’s getting posted to the server,

id=1&!nativeeditor_status=updated&id_id=0&username=mmmmmmmm&password=cccccccc&firstname=MMMM&lastname=MMMMM&readable_name=MMMMMMMM&email=&permissions=admin&company_name=&addr1=&addr2=&city=&state=&zip=&mobile=&phone=&flags=&universal_users_username=mmmmmmm&customer_id=0&admin=1&value=undefined&deleted=0

Here’s what the server is returning,

[code]

<?xml version='1.0' encoding='utf-8' ?>

<id_id></id_id><readable_name></readable_name><company_name></company_name><universal_users_username></universal_users_username><customer_id></customer_id>
[/code]

Any other ideas?

Thank you,
Rob

It should be noted, that is the result I get from the server page, whether or not anything is post’ed or get’ted.

So I have no indication that the server is reading the posted information, let alone processing it. It seems that something is missing on the server side.

Thank you,
Rob

Hi,

Perhaps it could help you…

http://forum.dhtmlx.com/viewtopic.php?f=19&t=20969

I hope

Thanks Mory,

Still no luck. Here’s my current order of files

    <script src="codebase/dhtmlx.js" type="text/javascript"></script>
    <link rel="STYLESHEET" type="text/css" href="codebase/dhtmlx.css">
	<script src="codebase/libs/dhtmlxCalendar.11-09-13/codebase/dhtmlxcalendar.js" type="text/javascript"></script>
	<script src="codebase/libs/dhtmlxForm.11-09-13/codebase/dhtmlxform.js" type="text/javascript"></script>
	<script src="codebase/libs/dhtmlxForm.11-09-13/codebase/ext/dhtmlxform_item_calendar.js" type="text/javascript"></script>
	<script src="codebase/datastore.js" type="text/javascript"></script>
	<script src="connector/connector.js" type="text/javascript"></script>
I changed the server side from 'SELECT * FROM...' to 'render_table(...' That didn't matter either.

I tried adding dhtmlxdataprocessor.js to the sequence, but it didn’t change anything either.

This is frustrating.

Thanks,
Rob

Order of includes are correct.
But incorrect response is a signal of incorrect data sending mode.

Are you using such command as dp.setTransactionMode or dp.enableDataNames ?

Stanislav,

Thank you. I just got it to work.

I was using .enableCellIds(true) on the grid.

Per Mory’s example <and your guidance there, which wasn’t specific to my situation> I set adminDP.setUpdateMode(“row”); and adminDP.setTransactionMode(“POST”,true);. That didn’t work; it wasn’t sending anything. But when I removed adminDP.setUpdateMode(“row”);, it did and I got an ‘updated’ response from the server.

So, apparently the fact that I was missing the ‘true’ on adminDP.setTransactionMode(“POST”,true); was the problem. I can see in the post data where it changed the posted variable names. (I figured out that the setUpdateMode(“row”) would have been specific to a grid update, and not a form update attached to the grid.)

Thank you for your help,
Rob