apache - ajax +json +php提交mysql数据库 中文乱码(wamp server 本地测试)求解?

WBOY
Release: 2016-06-06 20:08:01
Original
866 people have browsed it

<code> 之前用普通表单提交注册数据的时候就没有这个问题,请问是因为使用了ajax或者是json相关的格式转换函数的时候出现的错误吗?</code>
Copy after login
Copy after login

问题如图:
apache - ajax +json +php提交mysql数据库 中文乱码(wamp server 本地测试)求解?

代码如下:

<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>
Copy after login
Copy after login
<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>
Copy after login
Copy after login

回复内容:

<code> 之前用普通表单提交注册数据的时候就没有这个问题,请问是因为使用了ajax或者是json相关的格式转换函数的时候出现的错误吗?</code>
Copy after login
Copy after login

问题如图:
apache - ajax +json +php提交mysql数据库 中文乱码(wamp server 本地测试)求解?

代码如下:

<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>
Copy after login
Copy after login
<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>
Copy after login
Copy after login

连接成功后mysql进行一次set names utf8

在php文件中打印一遍var_dump $_POST接收到的数据看看有错没,然后检查数据库的编码charset是utf8还是别的,保证三码合一

  1. 前端获取到的数据是乱码的吗?

  2. 后端接收到的数据是乱码吗?

  3. 插入数据库前的数据是乱码吗?

逐步锁定产生乱码的地方,进行检查;

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template