您的位置:首页 > Web前端 > JQuery

jquery的ajax处理php返回数组,及json_encode中文为空的问题

2015-01-03 18:13 821 查看
 最近又开始学PHP了, 这里碰到一个问题, php 在处理jquery 的 ajax 传回来的 json数据中, 中文部分为空.

 数据库为 mysql,

 又是php中文编码的问题.

参考截图:

(左图为解决之前, 右图为解决之后)





偶的解决代码:

1, 后端 php   ( ajaxRequest/GetNotifyList.php )

       $list=array('ID'=>$list[ID], 'Title'=>iconv( 'gb2312', 'UTF-8' , $list[Title])); // 如果这一句不加,就会出现左图效果;反之,问题解决。
<?
//header("Content-Type:text/json;charset=UTF-8");
require('../Common/config.php');

$sql='SELECT ID,Title  FROM `YOUR_TABLE_NAME` order by createdate desc limit 0, 6';

//echo $sql;
mysql_select_db($db,$conn) or die("数据库".$db."连接失败!");
mysql_query("SET NAMES GBK");

$rs=mysql_query($sql) or die(mysql_error());

/*
$result="";
while($list=mysql_fetch_array($rs)){
$ID=$list['ID'];
$Title=$list['Title'];
$result=$result.$ID.":".$Title."|";
}

if(!empty($result))
{
$result=$result."SELECT_success";
}else
{
$result="SELECT_empty";
}
echo $result;
*/

$notifies=array();
mysql_query("SET NAMES GBK");
$rs=mysql_query($sql) or die(mysql_error());

while($list=mysql_fetch_array($rs)){
$list=array('ID'=>$list[ID], 'Title'=>iconv( 'gb2312', 'UTF-8' , $list[Title]));
$notifies[]=$list;
}
echo json_encode($notifies);

//print ($notifies);
//print_r ($notifies);

?>


2, web前端
  在 head 之间
<script src="./javascript/jquery-1.8.3.min.js" type="text/javascript" charset="UTF-8"></script>      
<script type="text/javascript">
$(document).ready(function(){

var htmlobj=$.ajax({
url:'ajaxRequest/GetNotifyList.php',
'type':'get',
dataType:'json',
success:function(d){
$.each(d,function(index,item){
//输出
//alert(index);
//alert(item.ID+"哈哈"+item.Title);
$("#lhScroll").append("<li><a style='color: Green;' href='#' val='"+item.ID+"'>" + item.Title + "</a></li>");
})
}
});

});
</script>

参考文章: http://unixlzx.blog.163.com/blog/static/1027737522011419492160/
(结束)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: