2014-03-07 76 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"); 
});