Heim > Artikel > Backend-Entwicklung > apache - ajax +json +php提交mysql数据库 中文乱码(wamp server 本地测试)求解?
<code> 之前用普通表单提交注册数据的时候就没有这个问题,请问是因为使用了ajax或者是json相关的格式转换函数的时候出现的错误吗?</code>
问题如图:
代码如下:
<code>$('#pro-edit-done').bind('click', function() { //获取要传递的数据 var prodata = {}; prodata.lid = <?php echo $_SESSION['user_id']; ?>; console.log(prodata.lid); prodata.id = $("#pro_id").val(); prodata.name = $("#pro_name").val(); var data = JSON.stringify(prodata); console.log(data); $.ajax ({ type: "POST", url : "./pro-edit-php.php", data: {data}, success:function(data) { console.log(data); $('.pro-name').text(prodata.name); } }); }); }); php文件: </code>
<code> <?php session_start(); header("Content-Type:text/html;charset=utf-8"); $link = mysqli_connect('localhost','root','root'); $db = mysqli_select_db($link,'workon'); $data = json_decode($_POST['data']); $id = $data->id; $lid = $data->lid; $name =$data->name; $query = "insert projects (proj_name,proj_leader_id) values ('$name','$lid')"; $tes_query = mysqli_query($link,$query); if ($tes_query) { echo $name; } ?> 之前用普通表单提交注册数据的时候就没有这个问题,请问是因为使用了ajax或者是json相关的格式转换函数的时候出现的错误吗?</code>
<code> 之前用普通表单提交注册数据的时候就没有这个问题,请问是因为使用了ajax或者是json相关的格式转换函数的时候出现的错误吗?</code>
问题如图:
代码如下:
<code>$('#pro-edit-done').bind('click', function() { //获取要传递的数据 var prodata = {}; prodata.lid = <?php echo $_SESSION['user_id']; ?>; console.log(prodata.lid); prodata.id = $("#pro_id").val(); prodata.name = $("#pro_name").val(); var data = JSON.stringify(prodata); console.log(data); $.ajax ({ type: "POST", url : "./pro-edit-php.php", data: {data}, success:function(data) { console.log(data); $('.pro-name').text(prodata.name); } }); }); }); php文件: </code>
<code> <?php session_start(); header("Content-Type:text/html;charset=utf-8"); $link = mysqli_connect('localhost','root','root'); $db = mysqli_select_db($link,'workon'); $data = json_decode($_POST['data']); $id = $data->id; $lid = $data->lid; $name =$data->name; $query = "insert projects (proj_name,proj_leader_id) values ('$name','$lid')"; $tes_query = mysqli_query($link,$query); if ($tes_query) { echo $name; } ?> 之前用普通表单提交注册数据的时候就没有这个问题,请问是因为使用了ajax或者是json相关的格式转换函数的时候出现的错误吗?</code>
连接成功后mysql进行一次set names utf8
在php文件中打印一遍var_dump $_POST接收到的数据看看有错没,然后检查数据库的编码charset是utf8还是别的,保证三码合一
前端获取到的数据是乱码的吗?
后端接收到的数据是乱码吗?
插入数据库前的数据是乱码吗?
逐步锁定产生乱码的地方,进行检查;