Phpmyadmin странные персонажи после поста ajax - PullRequest
0 голосов
/ 29 декабря 2018

Я вставляю некоторые данные из формы 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;

   }
  });

php

foreach ($_POST["date"] as $key => $date) {
    $dur =$_POST['spot_duration'];
    $cat = $_POST['category'][$key];
    $price = $dur * $cat;
    $spot_name = ($_POST['spot_name']);
    $sql = "INSERT INTO spot(spot_duration,spot_type,spot_name,spot_link,customer_name,spot_date,spot_show,spot_time,spot_price,spot_category) VALUES ('".$_POST['spot_duration']."','".$_POST['spot_type']."','".$spot_name."','".$_POST['file_name_helper']."','".$_POST['customer_name']."','".$date."','".$_POST['show'][$key]."','".$_POST['time'][$key]."',$price,'".$_POST['category'][$key]."')";
    $mysqli->query($sql);
}

Ответы [ 2 ]

0 голосов
/ 29 декабря 2018

Попробуйте использовать serializeArray() для создания 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;
       }
      });
 })
0 голосов
/ 29 декабря 2018

Измените свой contentType для поддержки другой кодировки:

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

РЕДАКТИРОВАТЬ: .. Я попробовал и протестировал сам и обнаружил, чтонет никаких проблем с запросом ajax вообще, и он отправляет данные отлично, но проблема на стороне сервера при получении.

Вы должны установить заголовок php следующим образом:

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

Я отправил этот текст ΑαΒβΓγΔδΕεΖζΗηΘθΙιΚκΛλΜμΝν и получил и повторил его правильно после установки заголовка с помощью charset utf-8.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...