我是Jquery的新手,希望得到你们的帮助。
我想在jquery中解码json数据,因为我能够将数据从php传递到ajax但是在它回到jquery后它没有解析它说undefined。代码如下:
$.post("GetData.php", function(data) {
if(data==false)
var tpl = '<p>no record found<p>'
else
var tpl = DrawTableRowsforSection(data);
$("#result").append($(tpl));
},"json");
function DrawTableRowsforSection(p)
{
alert(p.id[0]);
var o = '<table>';
for (var i = 0; i < p.length; i++)
alert(p.id[i]);
o += '<tr><td>'+p.id[i]+'</td><td>'+p.section_name[i]+'<td></tr>';
o+='</table>'
return O;
}
header('Content-Type: application/json');
mysql_connect('localhost','root','') ;
mysql_select_db('news');
session_start();
$query = 'select id,section_name from section';
if ($result = mysql_query($query)) {
if (!mysql_num_rows($result)==null) {
$myArray = array();
while ($row = mysql_fetch_assoc($result)) {
$id = ToSring($row['id']);
$myArray[] = $row;
}
echo json_encode($myArray);
}
}
数据库有一个名为section的表 字段如下
id int(11)
section_name varchar(20)
那里共有5条记录。
我想要的是使用返回的数据填充表。 任何人都可以指导我犯错的地方
此致 Kashif Afzaal
答案 0 :(得分:2)
确保mysql返回结果,你可以通过ajax获取它们。
另外,我看到了以下错误:
您使用的变量tpl
错误。它只是一个js变量,不需要使用$。
使用这种方式:
$("#result").append(tpl);
答案 1 :(得分:0)
好的,从PHP脚本的顶部开始:
if
块都应该有相应的else
块。mysql_num_rows()
的结果是从不 null
。做if (mysql_num_rows($result) > 0)
,或者更好,仅if (mysql_num_rows($result))
。if (!something == something)
- 它很少做你想要的。做if (something != something)
mysql_num_rows()
失败/没有行,所以(再次)响应很可能是空的。$id
变量执行任何操作。ToSring
应该阅读ToString
。但实际上PHP中没有这样的功能 - 您可以定义它或将其作为类/对象的方法调用。实际上,这可能是问题,因为它会导致致命的错误。