Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Phpmyadmin在ajax post之后出现奇怪的字符_Php_Sql_Codeigniter - Fatal编程技术网

Phpmyadmin在ajax post之后出现奇怪的字符

Phpmyadmin在ajax post之后出现奇怪的字符,php,sql,codeigniter,Php,Sql,Codeigniter,我将php表单中的一些数据插入数据库。当我输入希腊字符时,数据库显示奇怪的字符 我的HTMLcharset=“utf-8” 我试着解码后的值,然后从它给我的奇怪字符 $.ajax({ url:postURL, method:"POST", data:$('#add_name').serialize(), type: 'json', success:function(data) { i=1; var spot = d

我将php表单中的一些数据插入数据库。当我输入希腊字符时,数据库显示奇怪的字符

我的HTML
charset=“utf-8”
我试着解码后的值,然后从它给我的奇怪字符

$.ajax({
   url:postURL,
   method:"POST",             
   data:$('#add_name').serialize(),
   type: 'json',
   success:function(data)
   {
     i=1;
     var spot = document.getElementById('spot_name').value;
     window.location.href = "<?php echo base_url("index.php/Spot_preview/spot_preview/");?>"+spot;

   }
  });

更改contentType以支持不同的字符集:

dataType: 'json',
contentType: "application/json; charset=utf-8",

编辑:。。我自己尝试并测试了它,发现ajax请求根本没有问题,它发送数据非常好,但问题是在接收到数据后服务器端

您必须在方法中设置如下所示的php标头:

header('Content-Type: application/json; charset=utf-8');

我已经发送了这个文本
并在使用字符集utf-8设置标题后正确地接收和回显了它。

尝试使用
序列化数组()
从post数据创建JSON。添加了用于调试的console.log

 $('.submitBtn').click(function(e) {
     e.preventDefault();
     var sdata = $('#add_name').serializeArray();
     console.log(fdata);
   $.ajax({
       url:'',
       method:"POST",             
       data:fdata,
       type: 'json',
       success:function(data)
       {
         i=1;
         var spot = document.getElementById('spot_name').value;
         window.location.href = "<?php echo base_url("index.php/Spot_preview/spot_preview/");?>"+spot;
       }
      });
 })
$('.submitBtn')。单击(函数(e){
e、 预防默认值();
var sdata=$('#add_name').serializeArray();
控制台日志(fdata);
$.ajax({
url:“”,
方法:“张贴”,
数据:fdata,
键入:“json”,
成功:功能(数据)
{
i=1;
var spot=document.getElementById('spot_name')。值;
window.location.href=“”+点;
}
});
})

排序规则设置为什么?@comphonia utf8 unicode citry在phpmyadmin设置中将其更改为希腊字母ci,但仍然得到奇怪的字符。如果我不使用ajax,而只是通过php提交表单,那么数据将正确存储。因此,我假设它与ajax post有关,而不是数据库。如果要将表单序列化为JSON,则必须解析数据并从中构建SQL查询。如果我不查看后端代码,它将不会发送数据lines@Spy .. 它的
数据类型
不是
类型
。。请重试并向我显示您的新代码。我编辑了代码。我添加了行,只有删除contentType行,它才会发送数据。但是它仍然会在数据库中保存错误的数据。在将它们保存到数据库之前,如何回送它们呢?它是否也有错误。。告诉我来自ajax帖子的标题是否正确。当我添加行时,它不会进行重定向。我不能回应他们
 $('.submitBtn').click(function(e) {
     e.preventDefault();
     var sdata = $('#add_name').serializeArray();
     console.log(fdata);
   $.ajax({
       url:'',
       method:"POST",             
       data:fdata,
       type: 'json',
       success:function(data)
       {
         i=1;
         var spot = document.getElementById('spot_name').value;
         window.location.href = "<?php echo base_url("index.php/Spot_preview/spot_preview/");?>"+spot;
       }
      });
 })