|
|
|
PHP+Postgres ขึ้น ERROR: invalid byte sequence for encoding "UTF8" ครับ |
|
|
|
|
|
|
|
ตอนนี้ได้ความเพิ่มเติมครับ
หลังจากลองเขียนโค้ดใหม่โดยไม่ใช้วิธีเรียกแบบ AJAX ผลคือสามารถใช้ "ภ" ได้แล้ว
แสดงว่าตอนที่ผมส่งค่าผ่านฟังก์ชัน AJAX ของ javascript คงมีอะไรซักอย่างที่ทำงานผิดครับ
เดี๋ยวต้องลองดูอีกที
|
|
|
|
|
Date :
2014-04-13 21:13:51 |
By :
BossR |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ขอโค้ด AJAX ที่มีปัญหามาวางหน่อยครับ อาจช่วยอะไรได้บ้างครับ
|
|
|
|
|
Date :
2014-04-13 21:29:44 |
By :
Hello |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
อันนี้ครับ เป็นอันที่ผมไปก๊อปมาจากของพี่เขาน่ะครับ
Code (JavaScript)
<script src="./includes/Ajax_Framework1.js"></script>
<script language="javascript">
<!--
function ajaxshow(p){
//var data = getFormData("frmpsm");
var data = "pers="+document.getElementById("pers").value
+"&persTitle="+document.getElementById("persTitle").value
+"&persSearch="+document.getElementById("persSearch").value;
if(!p){p = 1;}
var url = "frmpersonal_data.php?page=" + p + "&sid=" + Math.random();
ajaxLoad("post", url, data, "displayId");
//document.getElementById("person_username").focus();
}
Ajax_Framework1
Code (JavaScript)
function ajaxLoad(method, URL, data, displayId){
var ajax = null;
try{
// Firefox, Opera 8.0+, Safari, Chrome
ajax = new XMLHttpRequest();
}catch(e){
// Internet Explorer
try{
ajax = new ActiveXObject("Msxml2.XMLHTTP");
}catch(e){
try{
ajax = new ActiveXObject("Microsoft.XMLHTTP");
}catch(e){
alert("Your Browser Don't Support AJAX!");
return false;
}
}
}
method = method.toLowerCase();
URL += "?dummy=" + (new Date()).getTime();
if(method=="get"){
URL += "&" + data;
data = null;
}
ajax.open(method, URL);
if(method=="post"){
ajax.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
}
ajax.onreadystatechange = function(){//RequestState
if(ajax.readyState==4 && ajax.status==200){
var ctype = ajax.getResponseHeader("Content-Type").toLowerCase();
ajaxCallback(ctype, displayId, ajax.responseText);
delete ajax;
ajax = null;
setTimeout("doStart()", 1000);
}else{
document.getElementById("displayId").innerHTML = "<div id='loadingShow'><br><br><font face='Tahoma' size='2'><img src='./images/loading1.gif' border='0'><br><br><br>ขณะนี้กำลัง Loading... กรุณารอสักครู่<br></font></div>";
}
}
ajax.send(data);
}
function ajaxCallback(contentType, displayId, responseText){
if(contentType.match("text/javascript")){
eval(responseText);
}
else {
var el = document.getElementById(displayId);
el.innerHTML = responseText;
}
}
function getFormData(form_name_or_id){
var frm = document.forms[form_name_or_id];
if(frm==null){
alert("form not found!");
return;
}
var data = "";
var num_el = frm.elements.length;
for(i=0; i<num_el; i++){
var el = frm.elements[i];
if(el.name=="" && el.id==""){
continue;
}
var param_name = "";
if(el.name!=""){
param_name = el.name;
}
else if(el.id!=""){
param_name = el.id;
}
var t = frm.elements[i].type;
var value = "";
if(t=="text"||t=="password"||t=="hidden"||t=="textarea"){
value = encodeURI(el.value);
}
else if(t=="radio"||t=="checkbox"){
if(el.checked){
value = encodeURI(el.value);
}
else{
continue;
}
}
else if(t=="select-one"){
value = encodeURI(el.options[el.selectedIndex].value);
}
else if(t=="select-multiple"){
for(j=0; j<el.length; j++){
if(el.options[j].selected){
if(data!=""){
data += "&";
}
data += param_name + "=";
data += encodeURI(select.options[j].value);
}
}
continue;
}
if(data!=""){
data += "&";
}
data += param_name + "=" + value;
}
return data;
}
*เพิ่มเติมครับ ผมลองสั่ง echo sql คำสั่งที่ผมใช้แล้ว
ถ้าเป็นข้อความอื่นจะขึ้นปกติ แต่พอเป็นตัว ภ ชอบขึ้น � เสมอเลยล่ะครับ
|
ประวัติการแก้ไข 2014-04-14 12:37:20
|
|
|
|
Date :
2014-04-14 12:33:27 |
By :
BossR |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
หลังจากได้ไปเล่นน้ำมาหลายวัน ปัญหาก็สามารถแก้ไขลงได้ซักทีครับ
พอลองทดลองโค้ดไปเรื่อยๆ ปัญหาดันไม่ได้เป็นที่ Javascript หรือ jquery เลย
แต่เกิดจากโค้ด PHP ผมตัวนึงครับ สำหรับแยกข้อความชื่อพนักงานเพื่อเอาไปสร้าง SQL สำหรับค้นหา
Code (PHP)
$explode_name = preg_split('/\s+/', $searchtxt);
เหมือนกับว่า คำสั่ง preg_split จะใช้คู่กับ unicode ได้ต้องมีการเพิ่ม u modifier เข้าไปครับ ถึงจะใช้ได้
หรือจะใช้ \p{Z} แทนก็ได้
$explode_name = preg_split('/\s+/u', $searchtxt);
//หรือ
$explode_name = preg_split('/\p{Z}+/', $searchtxt);
หรือจะใช้ explode ก็ได้ผลลัพธืเหมือนกัน
$explode_name = explode(' ', $searchtxt);
แหล่งที่มาของคำตอบนี้ครับ
http://stackoverflow.com/questions/4231864/why-does-phps-preg-split-split-the-hebrew-letter-in-utf-8-when-splitting-on
|
|
|
|
|
Date :
2014-04-17 14:40:57 |
By :
BossR |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 01
|