我正在构建一个从表格单元格中检索的数据数组。结果数组看起来像这样:
[["","","",""],["","9/2/14","","9/17/14"],["","","89ol",""],["","687k","","9-0["p/"],["","245g","245g","356h"],["","","",""],["","","4j6","467j"],["","","9/9/14",""]]
我将数据作为一个字段中的字符串保存到MySQL数据库。我现在需要检索该数据并迭代它以重新填充表格。
我以上述格式将数据作为字符串获取到$ .ajax函数。
如何让单个细胞数据正确填充细胞?
更新 这是我用来检索数据的PHP代码:
$queryGetUserTaskNotes = "SELECT userProgressNotes FROM userProgress WHERE userProgressUserID = $userID AND userProgressSiteID = $siteID and userProgressNotesTable = '" . $taskTableID . "'";
$resultGetUserTaskNotes = @mysqli_query($dbc,$queryGetUserTaskNotes);
if ($resultGetUserTaskNotes) {
$taskNotes = mysqli_fetch_assoc($resultGetUserTaskNotes);
echo $taskNotes['userProgressNotes'];
}
以下是我如何从php脚本中获取数据
function GetTaskNotes(siteID,tableID) {
$.ajax({
url: 'script.php',
data: {getTaskNotes:'true', userID:userID, siteID:siteID, tableID:tableID},
success: function(data) {
console.log('GetTaskNotes data: ' + data);
}
});
}
至于我到目前为止所尝试的内容,我一直在研究如何在成功函数中解析js端的字符串。 JSON.parse(数据)没有工作,坦率地说,我不知道还有什么可以尝试。
谢谢!
答案 0 :(得分:2)
除非你在性能/逻辑方面有非常特殊的需求,否则我会说最好使用名称/值对(也就是对象)的散列,其中散列中的名称对应于数据库中的实际字段。话虽如此,我们可以说,为了论证,数组是由.push()调用填充的,在这种情况下,一个简单的嵌套for循环应该可以工作:
'use strict';
var array = JSON.parse(string);
var cell, row, i, j;
var table = document.createElement('table');
for (i=0; i < array.length; ++i) {
row = document.createElement('tr');
for (j=0; j < array[i].length; ++j) {
cell = document.createElement('td');
cell.innerHTML = array[i][j];
row.appendChild(cell);
}
table.appendChild(row);
}
document.appendChild(table);
其中string
是您在重新填充时从数据库返回的字符串。
答案 1 :(得分:-1)
我认为这里的步骤将是:
在PHP中,提供一个JS可以执行GET的URL来返回数据。结构化和外观的方式在某种程度上取决于您正在使用的框架(如果有的话)。请务必使用内置的PHP JSON编码方法将该数据作为JSON返回。
在JS中,像这样做一个GET:
$.ajax({
url: 'your url here',
type: 'GET',
success: function(data) { console.log(data); }
});
在您的成功函数中,我假设您将处理迭代对象并将其插入DOM。我会看一下jQuery的$ .each()方法。当谈到“正确填充单元格”时,在jsFiddle或其他东西中查看HTML和JS会很有帮助。
祝你好运!参考文献: http://api.jquery.com/jQuery.ajax/ http://api.jquery.com/jquery.each/