ช่วยหน่อยคับ เรื่อง autocomplete ภาษาไทย หมดปัญญาแล้ว ขอบคุณคับ

ถาม-ตอบ แนะนำไอเดียว โค้ดตัวอย่าง แนวทาง วิธีแก้ปัญหา ช่วยหน่อยคับ เรื่อง autocomplete ภาษาไทย หมดปัญญาแล้ว ขอบคุณคับ

ช่วยหน่อยคับ เรื่อง autocomplete ภาษาไทย หมดปัญญาแล้ว ขอบคุณคับ

ตามภาพเลยคับ

ปัญหาคือเวลาที่เครื่อง PC ธรรมดา จำลอง server เอามันได้คับ

แต่ทำไม่กอปไป server จิง มันเป็นดังภาพคับ ทั้งๆที่ code เหมื่อนกันหมดทุกอย่าง datebase mysql charecter ก็เซตเหมือนกันทุกอย่าง ช่วยดูให้หน่อยคับงงจิงๆ ขอบคุณล่วงหน้านะคับผม 

code ของ ผม

<?
include ("config_password.php");
?>
<script type="text/javascript" src="autocomplete.js"></script> 
<link rel="stylesheet" href="autocomplete.css"  type="text/css"/> 
<?php  
// เชื่อมต่อฐานข้อมูล  
$link=mysql_connect("localhost","root","$config_password") or die("error".mysql_error());   
mysql_query("set character set tis620"); 
mysql_select_db("petition_legal",$link);  
 

$q=(isset($_POST["q"])) ? $_POST["q"] : $_GET["q"];
$q = iconv('UTF-8','TIS-620',$q); //แปลงจาก UTF8 เป็น TIS620

$pagesize = 50; // จำนวนรายการที่ต้องการแสดง  
$table_db="contactperson"; // ตารางที่ต้องการค้นหา  
$find_field="idcard"; // ฟิลที่ต้องการค้นหา   

$sql = "select x.*,y.name from $table_db x  LEFT JOIN title y ON y.tid = x.title where locate('$q', x.$find_field) > 0 order by locate('$q', x.$find_field), x.$find_field limit $pagesize";  
$results = mysql_query($sql);  
while ($row = mysql_fetch_array( $results )) {  
    $id = $row["conperid"]; // ฟิลที่ต้องการส่งค่ากลับ  
    $name = ucwords( strtolower( $row["idcard"] ) ); // ฟิลที่ต้องการแสดงค่า
 $name_1 = ucwords( strtolower( $row["cfname"] ) ); // ฟิลที่ต้องการแสดงค่า    
 $name_2 = ucwords( strtolower( $row["clname"] ) ); // ฟิลที่ต้องการแสดงค่า    
 $title_2 = ucwords( strtolower( $row["name"] ) ); // ฟิลที่ต้องการแสดงค่า  
    // ป้องกันเครื่องหมาย '  
    $name = str_replace("'", "'", $name);
 $name_1 = str_replace("'", "'", $name_1);    
    // กำหนดตัวหนาให้กับคำที่มีการพิมพ์  
    $display_name = preg_replace("/(" . $q . ")/i", "<font color=red><b>$1</b></font>", $name);  
 //--------------------------------------แปลงกลับจาก tis620->utf8----------------------------------------------//
 $name = iconv('TIS-620', 'UTF-8', $name);
 $id = iconv('TIS-620', 'UTF-8', $id);
 $display_name = iconv('TIS-620', 'UTF-8', $display_name);
 $title_2 = iconv('TIS-620', 'UTF-8', $title_2);
 $name_1 = iconv('TIS-620', 'UTF-8', $name_1);
 $name_2 = iconv('TIS-620', 'UTF-8', $name_2);
 
    echo "<li onselect="this.setText('$name').setValue('$id');">$display_name  ==> $title_2$name_1    $name_2</li>";   //
}  
mysql_close();  
?> 
 



Iammaipnch 03-02-2010 10:54:01

คำแนะนำ และการใช้งาน

สมาชิก กรุณา ล็อกอินเข้าระบบ เพื่อตั้งคำถามใหม่ หรือ ตอบคำถาม สมาชิกใหม่ สมัครสมาชิกได้ที่ สมัครสมาชิก


  • ถาม-ตอบ กรุณา ล็อกอินเข้าระบบ
  • เปลี่ยน


    ( หรือ เข้าใช้งานผ่าน Social Login )

 ความคิดเห็นที่ 1

 ให้ลองใส่ บรรทัดข้างล่างนี้ไว้บนสุดของไฟล์ php

<?php  
header("Content-type:text/html; charset=tis-620");    // หรือ UTF-8
// php code  //  
?>  
 
ทดสอบโดยเรียก path ไฟล์โดยตรงผ่านบราวเซอร์ เช่น ถ้าไฟล์เป็น gdata.php
ให้ลองเรียกไฟล์ผ่าน http://www.yourdomain.com/gdata.php?q=1 
1 คือค่าที่ส่งไปทดสอบ
แล้วให้สังเกต การแสดงผลว่า แสดงภาษาไทยได้หรือไม่ ถ้ายังไม่ได้
ให้ค่อยลองปรับต่าต่างๆ ดู เช่น จาก charset=tis-620 เป็น charset=UTF-8 เป็นต้น
 
 
จากโค้ดตัวอย่าง ไม่แน่ใจว่าใส่ไฟล์ javascritpt กับ css ไฟล์ ไว้ในไฟล์ php ด้วยไหม
ถ้ามีให้ตัดออก แล้วนำไปใส่ไว้ที่ไฟล์หลัก (ไฟล์ตามรูป)


ninenik 03-02-2010
 ความคิดเห็นที่ 2

 ยังไม่สามารถแก้ปัญหาภาษาไทยได้เลยค่ะ  ส่วนมากจะเป็นตัวหน้าที่เป็นตัวอักษรเพี้ยน  แต่หลังจากนั้นก้อเป็นคำไทยปกติค่ะ



ด.ญ. กัญจนี 14-05-2011 22:20






เว็บไซต์ของเราให้บริการเนื้อหาบทความสำหรับนักพัฒนา โดยพึ่งพารายได้เล็กน้อยจากการแสดงโฆษณา โปรดสนับสนุนเว็บไซต์ของเราด้วยการปิดการใช้งานตัวปิดกั้นโฆษณา (Disable Ads Blocker) ขอบคุณครับ