2014-03-07 35 views
-1

我试图用ajax发布到服务器上的json文件(API)。在Im舞台上拖动两个Kineticjs形状,当我停止拖动这些形状时,我希望能够将新的x和y坐标保存到服务器上的json文件中。 的问题是,我不能写这样的:Jquery Ajax发布json到网络服务器(API)

data: JSON.stringify({ 'x': '(this).getPosition().x', 'y': '(this).getPosition().y' }) 

我得到的误差是: 传递变量不是在阵列或对象 无效的查询:更新T_ZigbeeNodes集X =(Y =( ,plan =(其中ID =''
你的SQL语法有错误;检查与你的MySQL服务器版本相对应的手册,以便在'y =(,plan =在1号线

var getIthData = $.ajax({ 

     type: 'POST', 
     url: 'http://192.168.8.143/api/v11/plan/', 
     dataType: 'json', 
     data: JSON.stringify({ 'x': '(this).getPosition().x', 'y': '(this).getPosition().y' }), 

     success: function(resultData) { 

      alert("Post x coord and y coord and Plan, Complete!"); 
     } 
    }); 
    getIthData.error(function() { 

     alert("Something went wrong. Cant Post x coord and y coord and Plan"); 
    }); 

有人可以给我如何解决问题的提示?

+0

不要把(这一点)。 getPosition()。x在引号中。与y的第二次呼叫一样。 – frosty

+0

@aaronfrost嗨,好吧,我明白了。但我知道同样的错误... –

回答

1
'(this).getPosition().x' 

这会将字符串(this).getPosition().x添加到json中。为了得到x和y的值,去掉引号:

data: JSON.stringify({ 'x': (this).getPosition().x, 'y': (this).getPosition().y }) 
+0

嗨,好吧,我明白了。但是,我知道同样的错误... –

+0

然后,您的查询存在一些问题。你能发布确切的错误和你正在使用的SQL。 您原来的错误'... set x =(,y =(,plan =(其中ID =''...'取第一个'('from'(this).getPosition()。x'并加入它在查询中作为x和y的值 –

+0

好的,这里是服务器上的json文件: [{“e3014”:{“name”:“e3014”,“interval”:15,“x”: “10”,“y”:“10”,“plan”:“1”,“added”:“2013-06-26 19:40:27”,“type”:“enddev”}},{“e3026 “:{” 名称 “:” e3026" , “间隔”:15, “×”: “23”, “Y”: “10”, “计划”: “1”, “加入”:“2013-06- 26 15:51:30“,”type“:”enddev“}},{”R2500“:{”name“:”R2500“,”interval“:1,”x“:”0“,”y“: “0”,“plan”:“0”,“added”:“2013-11-28 14:03:20”,“type”:null}},{“R2502”:{“name”:“R2502” ,“间隔”:1,“x”:“0”,“y”:“0”,“计划”:“0”,“添加”:“2013-11-28 14:19:20”,“类型“:null}}] –

0

这是一个解决方案 '的Jquery的Ajax发布JSON到网络服务器(API)'

var data = []; 
var name = this.getName(); 
var obj = {}; 
var position = this.getPosition(); 
var x = (position.x < 0) ? 0 : position.x; 
var y = (position.y < 0) ? 0 : position.y; 

obj[name] = { 

    'name': name, 
    'x': position.x, 
    'y': position.y, 
    'plan': 1 
}; 

data.push(obj); 
data = JSON.stringify(data); 

var getIthData = $.ajax({ 

    type: 'POST', 
    url: 'http://192.168.8.143/api/v11/plan/', 
    data: data 

}).success(function(resultData) { 

    alert("Post name + x coord + y coord and Plan, Complete!"); 
}).error(function() { 

    alert("Something went wrong. Cant Post name + x coord + y coord and Plan"); 
});