我有一個查詢Select name, age from users
,我希望它的內容將jQuery與特定的格式返回:我怎樣才能獲取數據從PHP到我的jQuery腳本所需的JSON格式?
var externalDataRetrievedFromServer = [
{ name: 'Bartek', age: 34 },
{ name: 'John', age: 27 },
{ name: 'Elizabeth', age: 30 },
];
在一個PHP側到目前爲止我有:
$fetch = "SELECT name, age from users";
$result = $mysqli->query($fetch);
$data = array();
$data = $result->fetch_all(MYSQLI_ASSOC);
echo json_encode($data);
和jQuery的網站我有:
$.ajax({
url: './getJson.php',
type: "POST",
data: {
users: users
},
dataType:'text',
success: function(ans)
{
alert(ans);
但它返回我的數據的格式:
[{"name":"Bartek","age":"34"},{"name":"John","age":"27"},{"name":"Elizabeth","age":"30"}]
我需要我在文章的開頭提到的具體格式,因爲現在我目前的邏輯(即我不想改變)拋出了我一個錯誤:data.forEach is not a function
在這一行:
function buildTableBody(data, columns) {
var body = [];
body.push(columns);
data.forEach(function(row) {
var dataRow = [];
columns.forEach(function(column) {
dataRow.push(row[column].toString());
})
body.push(dataRow);
});
return body;
}
其中數據是我現在擁有的格式的數據。那麼我怎樣才能改變格式呢?
多一點點的細節在這裏:
我使用buildTableBody()位置:
function table(data, columns) {
return {
table: {
headerRows: 1,
body: buildTableBody(data, columns)
}
};
}
然而,當我從文字到JSON改變了數據類型,我越來越錯誤:
Uncaught TypeError: Cannot read property 'toString' of undefined
來自方法buildTableBody
。
當我做alert(ans)
現在,我越來越:
[object Object],[object Object],[object Object]
你有,我怎麼能解決這個問題的線索?
----另一個編輯:
這正是我想達到的目標:
VAR externalDataRetrievedFromServer = [ {名稱: '鮑爾泰克',年齡:34},{ 名稱:'約翰',年齡:27}, {姓名:'伊麗莎白',年齡:30}, ];
function buildTableBody(data,columns)var body = [];
body.push(columns);
data.forEach(function(row) {
var dataRow = [];
columns.forEach(function(column) {
dataRow.push(row[column].toString());
})
body.push(dataRow);
});
return body;
}
函數表(數據列){ 返回{ 表:{ 那麼headerRows:1, 體:buildTableBody(數據列) } }; }
變種DD = { 內容:[ {文本: '動態份',樣式: '標題'}, 表(externalDataRetrievedFromServer,[ '名稱', '年齡']) ] }
這是一個快速的技巧,但你可以在$使用str_replace函數的數據交換:與周圍。 – Coz