Javascript 将JSON数据写入HTML5表
我有以下代码片段:Javascript 将JSON数据写入HTML5表,javascript,php,json,html,Javascript,Php,Json,Html,我有以下代码片段: function getData(){ $.get('http://mywebsite.net/getFile.php', function(data) { var result = JSON.parse(data); } 返回以下JSON数据: Object {0: "11", 1: "MobileAppBackUp150715", 2: "rob@gmail.com", FileID: "11", FileName: "M
function getData(){
$.get('http://mywebsite.net/getFile.php', function(data) {
var result = JSON.parse(data);
}
返回以下JSON数据:
Object {0: "11", 1: "MobileAppBackUp150715", 2: "rob@gmail.com", FileID: "11", FileName: "MobileAppBackUp150715", FileEmail: "rob@gmail.com"}
$result = mysql_query("SELECT FileID, FileName, FileEmail FROM tblfiles WHERE FileEmail = '".$email."'");
$row = mysql_fetch_array($result);
if($row['FileEmail'] == $email) {
echo json_encode($row);
}
我有两个问题:
首先,我的JSON数据不正确,应该返回多个对象。以下是我创建JSON数据的方式:
Object {0: "11", 1: "MobileAppBackUp150715", 2: "rob@gmail.com", FileID: "11", FileName: "MobileAppBackUp150715", FileEmail: "rob@gmail.com"}
$result = mysql_query("SELECT FileID, FileName, FileEmail FROM tblfiles WHERE FileEmail = '".$email."'");
$row = mysql_fetch_array($result);
if($row['FileEmail'] == $email) {
echo json_encode($row);
}
在表tblfiles
中,我知道有两行数据是确定的
我的第二个问题是我不确定如何将JSON结果写入html表
编辑:更新:
使用以下php脚本,我成功地输出了我知道存在于表中的2行:
$result = mysql_query("SELECT FileID, FileName, FileEmail FROM tblfiles WHERE FileEmail = '".$email."'");
$row = array();
if(mysql_num_rows($result) > 0) {
while($r = mysql_fetch_assoc($result)) {
$id = $r["FileID"];
$row[$id] = $r;
}
}
echo json_encode($row);
这将产生以下结果:
{"11":{"FileID":"11","FileName":"MobileAppBackUp150715","FileEmail":"rob@gmail.com"},"14":{"FileID":"14","FileName":"MyFile","FileEmail":"rob@gmail.com"}}
现在我需要使用JS进入HTML页面中的一个表我将使用jquery回答您的问题。您可以轻松地将jquery添加到项目中
var $row = "<tr><td>" + result[0] + "</td><td>" + result[1] + "</td></tr>";
var $table = $("table"); //selects your table
$table.append(row);
var$row=”“+结果[0]+“”+结果[1]+“”;
var$表=$(“表”)//选择您的表
$table.append(行);
这是一种方法。这很简单,但可能不是最好的。如果您需要填充大量基于json的html,我建议您研究一些插件,例如knockout.js
希望有帮助 或者,要在回调函数中的单个命令中完成所有操作,您可以
$('#target').html('<table>'+$.map(result,function(d){return '<tr><td>'+$.map(d,function(e){return e;}).join('</td><td>')+'</td></tr>'}).join('\n')+'</table>');
在上面接受的答案后面,我想与大家分享一下对我有用的代码 无需使用
JSON.parse()
,因为使用getJSON()
函数已将JSON数据作为对象返回
<script>
$.getJSON('http://safe.net/getFile.php', function(json) {
var tr;
for(var i in json)
{
tr = $('<tr>');
tr.append("<td>" + json[i].FileName + "</td>");
tr.append("<td>" + json[i].FileID + "</td>");
tr.append("<td>" + json[i].FileEmail + "</td>");
$('table').append(tr);
console.log(json[i].FileName);
}
//console.log(json);
});
</script>
$.getJSON('http://safe.net/getFile.php,函数(json){
var-tr;
for(json中的var i)
{
tr=$('');
tr.append(“+json[i].FileName+”);
tr.append(“+json[i].FileID+”);
tr.append(“+json[i].FileEmail+”);
$('table')。追加(tr);
log(json[i].FileName);
}
//log(json);
});
感谢上面cars10的帮助。嘿,Nest,谢谢你的回答,但是现在我有了不止一个JSON对象(根据我上面的更新)。有什么想法吗?按照这个方法做两次。这是一个有效的解决方案,至少你们可以给我投票,作为有用的道歉。我真的忘了。你在哪里引用我的JSON数据来创建你的答案其实对不起我!我看到它
result
是回调函数中得到的对象。我从那里得到了一切…我觉得一切都很好。也请查看我的最新答案。它现在还包含一个工作代码段。把它写在我5岁的iPod上是相当辛苦的工作哈哈,我可以想象这会很难,好吧!我已经添加了您的代码段,但是没有显示任何结果。这是完整的html页面,好的,我会的。我会告诉你我的进展。谢谢