Php 将MySQL数据加载到网格时发生jqGrid JSON.parse错误
我已经对代码做了一些更改,但在将数据从MySQL表加载到JqGrid时仍然出现错误。这就是错误: parsererror:SyntaxError:JSON.parse:JSON数据200 OK的第2行第1列出现意外字符Php 将MySQL数据加载到网格时发生jqGrid JSON.parse错误,php,jquery,json,mysqli,free-jqgrid,Php,Jquery,Json,Mysqli,Free Jqgrid,我已经对代码做了一些更改,但在将数据从MySQL表加载到JqGrid时仍然出现错误。这就是错误: parsererror:SyntaxError:JSON.parse:JSON数据200 OK的第2行第1列出现意外字符{“page”:“1”,“total”:1,“records”:“1”,“rows”:[{“id”:“4”,“cell”:[“4”,“Alexandre”,“Araujo”,“alexaraujo73”,“2”]}} 这是我的PHP代码: <?php $page = $_
{“page”:“1”,“total”:1,“records”:“1”,“rows”:[{“id”:“4”,“cell”:[“4”,“Alexandre”,“Araujo”,“alexaraujo73”,“2”]}}
这是我的PHP代码:
<?php
$page = $_GET['page'];
$limit = $_GET['rows'];
$sidx = $_GET['sidx'];
$sord = $_GET['sord'];
$result = $mysqli->query("SELECT COUNT(*) AS count FROM users");
$row = mysqli_fetch_array($result,MYSQLI_ASSOC);
$count = $row['count'];
if( $count > 0 && $limit > 0) {
$total_pages = ceil($count/$limit);
} else {
$total_pages = 0;
}
if ($page > $total_pages) $page=$total_pages;
$start = $limit*$page - $limit;
if($start <0) $start = 0;
$SQL = "SELECT * FROM users ORDER BY $sidx $sord LIMIT $start , $limit";
$result = $mysqli->query( $SQL );
$i=0;
$responce = new stdClass();
$responce->page = $page;
$responce->total = $total_pages;
$responce->records = $count;
while($row = mysqli_fetch_array($result,MYSQLI_ASSOC)) {
$responce->rows[$i]['id']=$row['id_user'];
$responce->rows[$i]['cell']=array($row['id_user'],$row['firstname'],$row['lastname'],$row['username'],$row['level']);
$i++;
}
echo json_encode($responce);
?>
谢谢你的帮助!谢谢如果数据类型参数设置正确,另一个可能的问题是字符编码。假设您在数据库中使用utf-8。您应该执行一些步骤来解决此问题(如果有其他字符集,请相应地进行更改) 您应该在html头中设置如下字符集
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
最后,您应该在php中设置适当的头,如
header('Content-Type: text/plain; charset=utf-8');
echo json_encode($responce);
如果datatype参数设置正确,另一个可能的问题是字符编码。假设您在数据库中使用utf-8。您应该执行一些步骤来解决此问题(如果有其他字符集,请相应地进行更改) 您应该在html头中设置如下字符集
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
最后,您应该在php中设置适当的头,如
header('Content-Type: text/plain; charset=utf-8');
echo json_encode($responce);
我感谢大家的帮助。在尝试了所有的可能性之后,我决定在另一台运行Windows7的电脑上尝试这个脚本,它运行得非常好。我还在网上试了试,结果很顺利。我不知道为什么,但脚本在Windows 10上不起作用。我的本地主机服务器是在XAMPP下运行的,它工作得很好 我感谢大家的帮助。在尝试了所有的可能性之后,我决定在另一台运行Windows7的电脑上尝试这个脚本,它运行得非常好。我还在网上试了试,结果很顺利。我不知道为什么,但脚本在Windows 10上不起作用。我的本地主机服务器是在XAMPP下运行的,它工作得很好 在jqgrid脚本中添加'ajaxGridOptions:{contentType:'application/json;charset=utf-8'},'line,确切位置为@PankajMakwana?尝试在
url
之后添加,但我的朋友@PankajMakwana没有改变。您的代码使用了不存在的dataType
参数。你应该把它改成datatype
。在jqgrid脚本中添加'ajaxGridOptions:{contentType:'application/json;charset=utf-8'},'行@PankajMakwana到底在哪里?试着在url
后面加上,但我的朋友@PankajMakwana没有改变。您的代码使用了不存在的dataType
参数。您应该将其修复为数据类型
。我完全按照您的建议做了,但错误仍然存在。我使用了一个条件来检查是否应用了utf-8,在我添加了您的指令之后,它看起来已经正确地应用了。您好,JSON响应正常。唯一可能发生的事情是,您可能在php代码中执行另一个echo或print,请检查此项,如果可用,请删除它。我完全按照您的建议执行了操作,但错误仍然存在。我使用了一个条件来检查是否应用了utf-8,在我添加了您的指令之后,它看起来已经正确地应用了。您好,JSON响应正常。剩下的唯一可能发生的事情是,您可能会在php代码中执行另一个echo或print,请检查此项,如果可用,请将其删除。