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

最近又开始学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/

(结束)

时间: 2024-08-02 09:02:32

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

jQuery的ajax调用webservice返回XML数据传参错误

jQuery的ajax调用webservice返回XML数据传参错误: 有时候使用jquery的ajax调用带有参数的webservice返回XML格式输出的时候,会出现传参错误,当然错误的原因可能是多种多样的,下面就简单介绍一种. 一.错误代码: 1.ajax代码: $.ajax({ type:"post", url:"_service.asmx/getDataFromATable", data:" { tablename: temp }",

JQuery发送ajax请求不能用数组作为参数

JQuery发送ajax请求不能用数组作为参数,否则会接收不到参数, 一.js代码如下: $('#delete-button').click(function(){        var selectedMembers = document.getElementsByName('selectedMembers');        var cwIds = new Array(); //定义数组        for(var i=0;i<selectedMembers.length;i++){  

jquery 使用ajax,正常返回后,不执行success的问题

背景: 在使用到jQuery的ajax时,如果指定了dataType为json,老是不执行success回调,而是执行了error回调函数. 原因: 然后继续下载了几个jquery版本,如1.3.2,1.4.0的,指定dataType为json都不能执行success回调,只有小于1.3版本的才能执行success回调. 去jquery的网站找到了在线的api文档看了下,地址:http://api.jquery.com/jQuery.ajax/ ,发现dataType如下的说明  "json&q

JQuery的ajax方法获取返回值得到了值还包含了不要的html源码 (Ajax相关知识)

因为后台使用了response.Write():这个方法,当输出完了以后,没有结束掉会继续输出,所以需要用到response.End():这样问题就解决了 jquery的ajax 除了通过url传值,后台用respon.querystring[""]来获取 还可以通过data 中的数据 传值,后台用respon.Form[""]来获取

【转】jQuery 的 ajax 方法,返回结果 readyState=4 并且 status=200 时,还进 error 方法

今天在使用jquery.ajax方法去调用后台方法时,ajax中得参数data类型是"JSON",后台DEBUG调试,运行正常,返回正常的结果集,但是前端一直都进到ajax的error方法,百思不得其解,后要一探究竟,在error方法的参数中加了data后,发现data中的readyState = 4 并且 status=200,这两个状态也证明ajax访问没有问题,没有出现异常.回过头发现我在后台返回的是字符串,但并不是标准的json格式的字符串,所以前端js进入不了success.

Jquery 使用Ajax获取后台返回的Json数据后,页面处理

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title></title> <sc

ajax 请求 对json传的处理 Jquery 使用Ajax获取后台返回的Json数据后,页面处理

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title></title> <sc

jQuery获取Ajax函数的返回值

参考自: http://blog.csdn.net/crx05/article/details/7362252 function test() { var myText = ""; myText = $.ajax({ type: "POST", url: "/dragable/demo/test", async:false, data: {}, // dataType: "json", dataType: "text

jquery用ajax方式从后台获取json数据后如何将内容填充到下拉列表

对于问题从后台获取json数据,将内容填充到下拉列表,代码非常简单,具体过程请看下面代码. 需求:url:链接     par:ID       sel:下拉列表选择器 function BuildSelectBox(url, par, sel) {  $(sel).empty();  $.getJSON(url, { id: par }, function (json, textStatus) {   for (var i = json.length - 1; i >= 0; i--) {