09/10/2018, 23:39

Hỏi về font chữ khi post bằng ajax

Chào các bác,

Em đang viết một form post dữ liệu bằng ajax, viết trên PHP. Em có tham khảo hàm post bằng ajax ở đây: http://www.captain.at/howto-ajax-form-post-get.php, nhưng khi post và lưu vào DB thì bị lỗi font chữ, toàn ra giun với dế. Bác nào biết thì giúp em với nhé.

Thanks for help.
sacroyant viết 01:45 ngày 10/10/2018
AJAX cũng đơn giản, bạn nên tự viết chương trình thì sẽ tương thích với tiếng Việt tốt hơn là dùng các source code có sẵn của nước ngoài.

Bạn chỉ cần chú ý 2 điểm :

1. Trong PHP, khi trả kết quả xuống, bạn nên có dòng ở phần đầu :

header('Content-Type: text/html; charset=utf-8');

Nhất là với các file XML create theo dữ liệu từ database, rất nên có thiết lập :

header('Content-Type: text/xml; charset=utf-8');

2. Trong Java Script, khi post dữ liệu chứa ký tự Unicode, bạn cần dùng encodeURIComponent để mã hóa các ký tự gửi đi.

Đây là 1 ví dụ của 1 hàm gửi mail với AJAX :

Code:
function cod(s){return encodeURIComponent(s);}
function AJAX_control(){
  var req=null;
  if(window.ActiveXObject){
    req=new ActiveXObject("Msxml2.XMLHTTP");
      if(!req){
         req=new ActiveXObject("Microsoft.XMLHTTP")
      }
  }
  else if(window.XMLHttpRequest){
     req=new XMLHttpRequest();
  }
 return req;
}

function mail($from, $to, $content){
  var req=AJAX_control();
  var $packet="sender="+cod($from)+"&recipient="+$to+"&content="+cod($content);
  try{
    req.onreadystatechange =function(){
       if(req.readyState==4&&req.status==200){

          // làm gì đó khi có kết quả trả về

       }
    }
req.open("POST", 'sendMail.php', true);          
req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8");
   req.send($packet);
  }
  catch(e){

     // xử lý ngoại lệ ở đây 

  }
  finally{

     // dù thế nào cũng thực hiện điều này

  }
}
boygiandi viết 01:50 ngày 10/10/2018
ai da ... em cũng bị thế này .. sau nghĩ ra được 1 cách .. đó khi post cứ post bình thường .. khi hiển thị thì dùng hàm PHP để thay thế các kí tự tiếng Việt như ' à ' => ' à ' .. ok roài ..
boygiandi viết 01:47 ngày 10/10/2018
Chài .. ' à ' => ' &#_0224; ' ( bỏ dấu _ đi vì post lên nó tự động biến thành à )
annh0106 viết 01:40 ngày 10/10/2018
Cảm ơn các bác nhiều !
Bài liên quan
0