最新案例

jquery中ajax提交中文数据 出现空值问题

发表日期:2016-08-06 文章来源:

在jquery+php开发系统中,如果前台、后台、js、数据库采用的都是gb2312编码,通过ajax提交数据到数据库的过程需要注意编码问题。

需要指出的是,在非UTF-8编码下,中文字符将不可被encode,结果会出来空值,所以,如果使用gb2312编写PHP代码,那么就需要将包含中文的内容使用iconv或者mb转为UTF-8再进行json_encode。

下面为参考代码:

javascript代码:

$.ajax({
	type: "POST", 
	url : "dispose.php", 
	dataType:'json',
	contentType: "application/x-www-form-urlencoded; charset=utf-8", 
	data: {
		send_val1:val1,
		send_val2:val2
	},
	success: function(data){
		$('#result').html(data[0]]);
	},
	error: function () { 
		alert("提交异常,请稍候再试!"); 
	}
})

php处理代码:

header('Content-Type:text/html;charset=GB2312');
$send_val1=iconv("utf-8","gb2312",$send_val1);
$send_val2=iconv("utf-8","gb2312",$send_val2);
//对变量进行数据库操作...
//下面是返回数据
$arr = array();
$arr[0]=iconv('gb2312','UTF-8','操作成功');
$arr[1]=iconv('gb2312','UTF-8','返回数据');
echo json_encode($arr);