推荐:《php视频教程》
ajax+php post方法发送数据(解决后端中文乱码问题)
前端ajax调用接口,后端接收数据保存数据库。
注意contenttype一定这样设置。
if(issuccess){ var token = sessionstorage.token; $.ajax({ type:'post', url:'../../api/container/'+token+'/addcontainerdamagereport', contenttype:'application/x-www-form-urlencoded;charset=utf-8', data:{'containername':'hjsy'+containername,'username':username,'description':descript,'damagetime':damagetime ,'reporttime':reporttime,'damagelevel':badlevel,'damagetype':badtype}, cache:false, datatype:'json', success:function(data){ $('#submit').attr('data-dismiss',"modal"); console.log(data) } }) }
后端接受:
页面的编码格式utf-8,sql server数据库是gbk,注意转换,否则插入进去是乱码。
if($action=='addcontainerdamagereport'){$ret["isinsert"]=false;if($conn!=false){$containername = isset($_post['containername'])?$_post['containername']:"";$username = isset($_post['username'])?$_post['username']:"";$description = isset($_post['description'])?iconv("utf-8","gbk",$_post['description']):"";$damagetime = isset($_post['damagetime'])?$_post['damagetime']:"";$reporttime = isset($_post['reporttime'])?$_post['reporttime']:"";$damagelevel = isset($_post['damagelevel'])?$_post['damagelevel']:"";$damagetype = isset($_post['damagetype'])?$_post['damagetype']:"";$sqlstring="insert into [mopex].[dbo].[containerdamagereport]([id],[containername],[damagetime],[reporttime],[damagelevel],[checkname],[damagetype],[description],[reportname],[status],[checktime])values(newid(),'".$containername."','".$damagetime."','".$reporttime."','".$damagelevel."','admin','".$damagetype."','".$description."','".$username."',0,'1900-01-01 00:00:00.0000000')";opendb($conn,$databasename);$rs_insert = db_query($conn,$sqlstring);if($rs_insert != false){$ret["isinsert"]=true;$datalist[0]=array('containername'=>$containername,'username'=>$username,'damagetime'=>$damagetime,'reporttime'=>$reporttime,'damagelevel'=>$damagelevel,'damagetype'=>$damagetype,'description'=>$description,'status'=>'0');}db_close($conn);}}
以上就是如何解决php ajax post 乱码问题的详细内容。
