Javascript 解析从数据库中检索为字符串的二维数组
我正在构建一个从表的单元格中检索的数据数组。生成的数组如下所示:Javascript 解析从数据库中检索为字符串的二维数组,javascript,php,mysql,arrays,Javascript,Php,Mysql,Arrays,我正在构建一个从表的单元格中检索的数据数组。生成的数组如下所示: [["","","",""],["","9/2/14","","9/17/14"],["","","89ol",""],["","687k","","9-0["p/"],["","245g","245g","356h"],["","","",""],["","","4j6","467j"],["","","9/9/14",""]] 我将数据保存到MySQL数据库中,作为一个字段中的字符串。我现在需要检索该数据并遍历它以重新填充表
[["","","",""],["","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);
}
});
}
至于到目前为止我所尝试的,我一直在研究如何在success函数中解析js端的字符串。parse(数据)不起作用,坦率地说,我不知道还有什么可以尝试
谢谢 我想这里的步骤是: 在PHP中,提供一个URL,JS可以对该URL执行GET操作,从而返回数据。结构和外观的方式在某种程度上取决于您使用的框架(如果有的话)。确保使用内置的PHP JSON编码方法以JSON形式返回该数据 在JS中,执行如下操作:
$.ajax({
url: 'your url here',
type: 'GET',
success: function(data) { console.log(data); }
});
在success函数中,我假设您将处理对对象的迭代并将其插入DOM。为此,我将研究jQuery的$.each()方法。当谈到“正确填充单元格”时,在JSFIDLE或其他文件中查看HTML和JS会很有帮助
祝你好运
参考资料:
除非您在性能/逻辑方面有非常特殊的需求,否则我认为最好使用名称/值对的散列(也称为对象),其中散列中的名称对应于数据库中的实际字段。话虽如此,为了便于讨论,让我们假设数组由.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);
“严格使用”;
var array=JSON.parse(字符串);
var单元,行,i,j;
var table=document.createElement('table');
对于(i=0;i
其中
string
是重新填充时从数据库返回的字符串 请与我们分享您的尝试。如果否决票是因为缺乏信息,我已经更新了帖子,解释了更多关于我是如何做的以及我在做什么。我没有DV,只是请您分享您的尝试。抱歉-不是专门针对您,@jayblanchard此数据似乎是json,您可能可以通过数据[0][0]
直接访问内容……我之前尝试过JSON.parse,但出于某些疯狂的原因,它对我不起作用。我在我的帖子中使用字符串数组在测试页面上运行了您的代码,它工作正常(document.appendChild(table)行出错,但我知道现在可以访问数据了)。谢谢