2014-01-27 114 views
1

到目前爲止,我一直在使用所有Jquery,但是現在遇到了一個問題,當我嘗試從另一個php文件中提取數據時...我只是測試它有一個數據之前,我寫數據的其餘部分,我很高興,因爲它不工作jquery沒有返回我想要的

這是我的jQuery是獲取信息

$.post('php/getinfo.php', {}, function(data){ 
//Fill variables 
var lvl1v = $('#lvl1vocab').text(data); 
//Set div's to variables 
$('#1v').text(lvl1v); 
}, "html"); 

這是所有在我是getinfo .php頁面此刻

<div id="lvl1vocab">120</div> 

什麼,我也會寫到屏幕,而不是「120」是「的翻譯:」

+0

那麼'數據'顯然不是一個字符串值,但一個對象... – CBroe

+0

所以你在問怎麼把一個'object'的內容寫到屏幕上? –

+0

你需要訪問你的對象。即:'data [0]'或類似的。我們需要看到'object'的輸出來幫助你。 –

回答

1

行:

var lvl1v = $('#lvl1vocab').text(data); 

正在尋找在當前DOM的lvl1vocab ID,而不是在數據從服務器返回。你應該這樣做:

var lvl1v = $(data).text(); 

獲得頂級元素的文本中返回的數據。

爲了能夠搜索在返回的數據的東西,使用方法:

var $data = $('<div>', { html: data }); // Wrap another DIV around it 
var lvl1v = $data.find('#lvl1vocab').text(); 

你需要額外的DIV包裝,因爲find()不會頂級元素,它給了,只是它的後代相匹配。

+0

好的,這是有效的!但是我將在該頁面上顯示大約15條信息,我如何才能使它抓住特定的DIV? 這是我通過搜索 var var mainDiv = $(「#mainDiv」,data);' 找到的,並且使它適合我的名字,但它對我無效 – chris3spice

+0

查看更新的答案以獲取更多詳細信息。 – Barmar

+0

如果您返回JSON而不是HTML,事情會更容易。如果您只想將返回的結果直接插入到DOM中,而不是搜索它,那麼只應該返回HTML。 – Barmar

0

在我看來就像所有你需要做的是這樣的:

$.post('php/getinfo.php', {}, function(data){ 
$('#1v').html(data); 
}, "html"); 

這是假設你的數據的完整價值<div id="lvl1vocab">120</div>,你想要把DIV從你的返回值到您的#1V DIV

這是你的輸出:

<div id="1v"> 
    <div id="lvl1vocab">120</div> 
</div> 

如果您在返回多個格在你的數據計劃,他們需要將已經分裂並投入進一步的div解析到頁面,然後你需要考慮使用json_encode PHP端返回一個對象,並看看在jQuery頁面上的數據類型:http://api.jquery.com/jquery.post/