2013-04-11 86 views
0

我希望是我的客戶的json API(它正確發送數據)的成功後,但我很難獲取該數據並將其用作變量更新我的網站...

$.post(takeurl, function(data) {    
     var newPrice = json.data.newPrice; 
     alert('hi'); 
    }, "json"); 

    $(this).parents("tr").find(".large-detail").html(newPrice); 

    return false; 
}); 

Fiddle

基本上,在這個例子中,我想更新large-detail從我的API調用,這將返回這樣的newPrice數據:

{"data":{"newPrice":80,"lockedInPrice":47},"errors":[],"success":true,"code":200} 

想法?我無法通過newPrice。我希望我犯了一個愚蠢的語法錯誤,即使它會讓我覺得自己像個白癡。

回答

0

您需要在回調函數來更新它:

var $self = $(this); 

    $.getJSON(takeurl, function(data) {    
     var newPrice = data.data.newPrice; 
     $self.parents("tr").find(".large-detail").html(newPrice); 
    }); 

    return false; 
}); 

如果你擁有了它,現在它的AJAX函數返回前,執行和你newPrice變量的範圍之外。

+0

嗯,我試過了,它不工作...不返回任何東西。你能否告訴我的.post電話是否正確寫入? (我應該提到這是表格數據,並且我將表格從小提琴中除去以修剪它) – dilettante 2013-04-11 17:22:43

+0

@dilettante您需要使用POST還是可以使用GET?如果您可以使用GET,那麼您可以像編輯回答中那樣使用'getJSON'。 – Paulpro 2013-04-11 17:25:07

+0

謝謝!我剛剛嘗試過,仍然沒有任何收穫。奇怪的是,我剛剛加入\t \t \t console.log(newPrice);在聲明變量並且它沒有出現之後。所以我把它改爲\t \t \t console.log('hi);沒事了。即使我的控制檯窗口顯示正在返回的數據,它可能不會調用嗎? – dilettante 2013-04-11 17:31:23

0

該問題是由於返回的JSON中的錯誤引起的,其中前綴爲<pre></pre>的代碼供其他工程師測試,但是當我嘗試使用它時返回了一個parseerror。謝謝@paulpro。