Register Register Member Login Member Login Member Login Forgot Password ??
PHP , ASP , ASP.NET, VB.NET, C#, Java , jQuery , Android , iOS , Windows Phone
 

Registered : 109,037

HOME > PHP > PHP Forum > autocomplete กับ MSSQL สำเร็จแล้ว แต่ ภาษาไทยไม่ออก อะครับ ออกแต่ภาษา Eng นะครับ



 

autocomplete กับ MSSQL สำเร็จแล้ว แต่ ภาษาไทยไม่ออก อะครับ ออกแต่ภาษา Eng นะครับ

 



Topic : 073114



โพสกระทู้ ( 537 )
บทความ ( 0 )

Hall of Fame 2012

สถานะออฟไลน์




Code (PHP)
<meta http-equiv="Content-Type" content="text/html; charset=tis-620"> 
<?php 
// เชื่อมต่อฐานข้อมูล
$link=mssql_connect("xxx","xxxx","xxxx") or die("Error Connect to DB");
mssql_select_db("inv");
mb_internal_encoding('UTF-8');
mb_http_output('UTF-8');
mb_http_input('UTF-8');
mb_language('uni');
mb_regex_encoding('UTF-8');
ob_start('mb_output_handler');
setlocale(LC_ALL, 'th_TH');

$q = urldecode($_GET["q"]);
//$q= iconv('utf-8', 'tis-620', $_GET['test']);
$sql = "select top 50 pd_nambill from pd_inv where pd_nambill like '$q%' ORDER BY pd_nambill desc";
$results = mssql_query($sql);
while ($row = mssql_fetch_array( $results )) {
$id = $row["pd_nambill"]; // ฟิลที่ต้องการส่งค่ากลับ
$name =$row["pd_nambill"]; // ฟิลที่ต้องการแสดงค่า
// ป้องกันเครื่องหมาย '
$name = str_replace("'", "'", $name);
// กำหนดตัวหนาให้กับคำที่มีการพิมพ์
$display_name = preg_replace("/(" . $q . ")/i", "<b>$1</b>", $name);
echo "<li onselect=\"this.setText('$name').setValue('$id');\">$display_name</li>";
}
mssql_close();
?>


มัน ออก อย่างนี้อะครับ Safety ()
ความจริงแล้ว มันต้องออกอย่างนี้ครับ หมวก Safety ปรับเลื่อน (สีฟ้า) มอก.



Tag : PHP, Ms SQL Server 2008









ประวัติการแก้ไข
2012-02-02 14:54:31
2012-02-02 14:59:02
Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2012-02-02 14:53:56 By : time.toon View : 2235 Reply : 8
 

 

No. 1



โพสกระทู้ ( 537 )
บทความ ( 0 )

Hall of Fame 2012

สถานะออฟไลน์


ตอนนี้ลอง เรียก file auto.php ดูแล้วมันก็แสดงเป็นภาษาไทยปกติ นะครับ
แต่หน้าที่ Input มันไม่แสดงภาษา ไทย นะครับหรือว่ามันเกี่ยวกับ JAVA อะครับ
Code (PHP)
<head>
<meta http-equiv="Content-Type" content="text/html; charset=tis-620"> 
<title></title>
<script type="text/javascript" src="autocomplete.js"></script>
<link rel="stylesheet" href="autocomplete.css"  type="text/css"/>
</head>
<body>
<form id="form1" name="form1" method="post" action="">
  <input name="show_arti_topic" type="text" id="show_arti_topic" size="50" />
  <input name="h_arti_id" type="hidden" id="h_arti_id" value="" />
</form>
<script type="text/javascript">	
function make_autocom(autoObj,showObj){
	var mkAutoObj=autoObj; 
	var mkSerValObj=showObj; 
	new Autocomplete(mkAutoObj, function() {
		this.setValue = function(id) {		
			document.getElementById(mkSerValObj).value = id;
		}
		if ( this.isModified )
			this.setValue("");
		if ( this.value.length < 1 && this.isNotClick ) 
			return ;	
		return "auto.php?q=" +encodeURIComponent(this.value);
    });	
}	
 
// การใช้งาน
// make_autocom(" id ของ input ตัวที่ต้องการกำหนด "," id ของ input ตัวที่ต้องการรับค่า");
make_autocom("show_arti_topic","h_arti_id");
</script>
</body>
</html>







แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-02-02 16:15:44 By : time.toon
 


 

No. 2



โพสกระทู้ ( 335 )
บทความ ( 0 )



สถานะออฟไลน์


เกี่ยวรึเปล่าครับที่
<meta http-equiv="Content-Type" content="text/html; charset=tis-620">
เป็น tis-620

แต่ ตัว code ใช้ UTF-8

แล้วใน ฐานข้อมูลใช้ collation เป็นอะไรครับ
utf8_unicode_ci หรือ tis620_thai_ci

ลองใช้เป็น UTF-8 อย่างเดียวไปเลยได้เปล่าครับ

ตอนเชื่อม databse อย่าลืมquery SET CHARACTER SET UTF8 ด้วย
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-02-02 16:24:01 By : Likito
 

 

No. 3



โพสกระทู้ ( 74,058 )
บทความ ( 838 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์
Twitter Facebook

ลองดูกระทู้นี้ครับ การส่งค่าพวก header หรือ meta ต่าง ๆ ครับ


Go to : ajax php mysql autocomplete textbox ภาษาไทย
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-02-02 17:08:00 By : webmaster
 


 

No. 4



โพสกระทู้ ( 537 )
บทความ ( 0 )

Hall of Fame 2012

สถานะออฟไลน์


ตอบความคิดเห็นที่ : 3 เขียนโดย : webmaster เมื่อวันที่ 2012-02-02 17:08:00
รายละเอียดของการตอบ ::
ใส่แล้วมัน ERROR นะครับพี่วิน
Warning: Cannot modify header information - headers already sent by (output started at C:\AppServ\www\11\auto.php:2) in C:\AppServ\www\11\auto.php on line 3

Warning: Cannot modify header information - headers already sent by (output started at C:\AppServ\www\11\auto.php:2) in C:\AppServ\www\11\auto.php on line 4

Warning: Cannot modify header information - headers already sent by (output started at C:\AppServ\www\11\auto.php:2) in C:\AppServ\www\11\auto.php on line 5

Code (PHP)
<meta http-equiv="Content-Type" content="text/html; charset=tis-620"> 
<?php 
header("Content-type:text/html; charset=UTF-8"); 
header("Cache-Control: no-store, no-cache, must-revalidate"); 
header("Cache-Control: post-check=0, pre-check=0", false); 
$link=mssql_connect("xxx","xxx","xxx") or die("Error Connect to DB");
mssql_select_db("xxx");
$q = urldecode($_GET["q"]);
//$q= iconv('utf-8', 'tis-620', $_GET['test']);
$sql = "select top 50 pd_nambill from pd_inv where pd_nambill like '$q%' ORDER BY pd_nambill desc";
$results = mssql_query($sql);
while ($row = mssql_fetch_array( $results )) {
$id = $row["pd_nambill"]; // ฟิลที่ต้องการส่งค่ากลับ
$name =$row["pd_nambill"]; // ฟิลที่ต้องการแสดงค่า
// ป้องกันเครื่องหมาย '
$name = str_replace("'", "'", $name);
// กำหนดตัวหนาให้กับคำที่มีการพิมพ์
$display_name = preg_replace("/(" . $q . ")/i", "<b>$1</b>", $name);
echo "<li onselect=\"this.setText('$name').setValue('$id');\">$display_name</li>";
}
mssql_close();
?>

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-02-03 09:49:12 By : time.toon
 


 

No. 5



โพสกระทู้ ( 335 )
บทความ ( 0 )



สถานะออฟไลน์


ลอง เพิ่ม

Code (PHP)
mysql_query("SET NAMES UTF8");


เป็นแบบนี้รึยังครับ
Code (PHP)
$link=mssql_connect("xxx","xxxx","xxxx") or die("Error Connect to DB");
mssql_select_db("inv");
mysql_query("SET NAMES UTF8");


แล้วทำการปรับ

<meta http-equiv="Content-Type" content="text/html; charset=tis-620">
เป็น
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">

แล้วก็ใน database เลือกใช้ collation เป็น utf8_unicode_ci แทน tis620_thai_ci หรือยังครับ

ถ้าจะใช้ utf 8 ก็ควรปรับเป็น utf-8 ให้หมดเลยดีกว่า
โค้ดตัวอย่างที่ให้ดูข้างบน มีทั้ง utf8 กับ tis-620 มันคงตีกันอะครับ

ส่วน header ที่ error นั้น
น่าจะตัด <meta http-equiv="Content-Type" content="text/html; charset=tis-620"> ทิ้งรึเปล่า
ให้ header อยู่บรรทัดบนสุดของ file.php นั้นๆ

เป็นแบบนี้
Code (PHP)
<?php 
header("Content-type:text/html; charset=UTF-8"); 
header("Cache-Control: no-store, no-cache, must-revalidate"); 
header("Cache-Control: post-check=0, pre-check=0", false); 
$link=mssql_connect("xxx","xxx","xxx") or die("Error Connect to DB");
mssql_select_db("xxx");
$q = urldecode($_GET["q"]);
//$q= iconv('utf-8', 'tis-620', $_GET['test']);
$sql = "select top 50 pd_nambill from pd_inv where pd_nambill like '$q%' ORDER BY pd_nambill desc";
$results = mssql_query($sql);
while ($row = mssql_fetch_array( $results )) {
$id = $row["pd_nambill"]; // ฟิลที่ต้องการส่งค่ากลับ
$name =$row["pd_nambill"]; // ฟิลที่ต้องการแสดงค่า
// ป้องกันเครื่องหมาย '
$name = str_replace("'", "'", $name);
// กำหนดตัวหนาให้กับคำที่มีการพิมพ์
$display_name = preg_replace("/(" . $q . ")/i", "<b>$1</b>", $name);
echo "<li onselect=\"this.setText('$name').setValue('$id');\">$display_name</li>";
}
mssql_close();
?>

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-02-03 10:13:44 By : Likito
 


 

No. 6



โพสกระทู้ ( 537 )
บทความ ( 0 )

Hall of Fame 2012

สถานะออฟไลน์


ตอบความคิดเห็นที่ : 5 เขียนโดย : Likito เมื่อวันที่ 2012-02-03 10:13:44
รายละเอียดของการตอบ ::
ต้องขอบคุณ คุณ Likito ที่มาช่วยตอบนะครับ แต่ที่ database เราไม่สามารถปรับได้ครับเพราะผมดึงมาจากโปรแกรมที่เป็น CMS ครับถ้าปรับจะมีผลกลับโปรแกรม ทันทีเลยนะครับ แต่ที่ tis620_thai_ci มันก็ใช้งานได้ปกตินะครับโดยผมได้กำหนด meta เป็น
<meta http-equiv="Content-Type" content="text/html; charset=tis-620">
เพียงแต่ผมสงสัยว่า จาวา...มันไม่อ่าน ภาษาไทยนะครับ เพราะ page auto.php ก็สามารถอ่านภาษาไทยได้ปกติครับ
และ page index.php ก็สามารถรับและอ่านค่าภาษา Eng ได้ครับยกเว้น ภาษาไทยครับ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-02-03 10:21:08 By : time.toon
 


 

No. 7



โพสกระทู้ ( 335 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 6 เขียนโดย : time.toon เมื่อวันที่ 2012-02-03 10:21:08
รายละเอียดของการตอบ ::
ในเมื่อจำเป็นต้องใช้ tis-620 งั้นก็ควรปรับเป็น tis-620 ตามรึเปล่าครับ


แล้วที่ไฟล์ Index.php

Code (JavaScript)
function make_autocom(autoObj,showObj){
	var mkAutoObj=autoObj; 
	var mkSerValObj=showObj; 
	new Autocomplete(mkAutoObj, function() {
		this.setValue = function(id) {		
			document.getElementById(mkSerValObj).value = id;
		}
		if ( this.isModified )
			this.setValue("");
		if ( this.value.length < 1 && this.isNotClick ) 
			return ;	
		return "auto.php?q=" +encodeURIComponent(this.value);
    });	
}	


ที่ฟังก์ชัน มีการ return "auto.php?q=" +encodeURIComponent(this.value);
เป็นเพราะใช้ encodeURIComponent() คลุม ค่าที่ต้องเอาไป select ที่หน้า auto.php รึเปล่าครับ
เลยทำให้ มีปัญหาเรื่องภาษาไทย
ลองตัดออกดู จะมีปัญหาอะไรรึเปล่า

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-02-03 10:35:58 By : Likito
 


 

No. 8



โพสกระทู้ ( 537 )
บทความ ( 0 )

Hall of Fame 2012

สถานะออฟไลน์


ได้แล้วครับ ต้องขอบคุณ คุณ Likito จริงๆครับเป็นเพราะ +encodeURIComponent(this.value); จริงๆด้วยครับ ถ้ายังไงเดี๋ยวผมแจก Code ให้กลับคนอื่นต่อเลยนะครับ เพื่อเป็นประโยชน์

Go to : ต่อยอด ajax php mysql autocomplete textbox ภาษาไทย VS andquot;MSSQLandquot; ครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-02-03 10:53:17 By : time.toon
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : autocomplete กับ MSSQL สำเร็จแล้ว แต่ ภาษาไทยไม่ออก อะครับ ออกแต่ภาษา Eng นะครับ
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ FTP| ใส่แถวของตาราง ใส่คอลัมน์ตาราง| ตัวยก ตัวห้อย ตัวพิมพ์ดีด| ใส่โค้ด ใส่การอ้างถึงคำพูด| ใส่ลีสต์
smiley for :lol: smiley for :ken: smiley for :D smiley for :) smiley for ;) smiley for :eek: smiley for :geek: smiley for :roll: smiley for :erm: smiley for :cool: smiley for :blank: smiley for :idea: smiley for :ehh: smiley for :aargh: smiley for :evil:
Insert PHP Code
Insert ASP Code
Insert VB.NET Code Insert C#.NET Code Insert JavaScript Code Insert C#.NET Code
Insert Java Code
Insert Android Code
Insert Objective-C Code
Insert XML Code
Insert SQL Code
Insert Code
เพื่อความเรียบร้อยของข้อความ ควรจัดรูปแบบให้พอดีกับขนาดของหน้าจอ เพื่อง่ายต่อการอ่านและสบายตา และตรวจสอบภาษาไทยให้ถูกต้อง

อัพโหลดแทรกรูปภาพ

Notice

เพื่อความปลอดภัยของเว็บบอร์ด ไม่อนุญาติให้แทรก แท็ก [img]....[/img] โดยการอัพโหลดไฟล์รูปจากที่อื่น เช่นเว็บไซต์ ฟรีอัพโหลดต่าง ๆ
อัพโหลดแทรกรูปภาพ ให้ใช้บริการอัพโหลดไฟล์ของไทยครีเอท และตัดรูปภาพให้พอดีกับสกรีน เพื่อความโหลดเร็วและไฟล์ไม่ถูกลบทิ้ง

   
  เพื่อความปลอดภัยและการตรวจสอบ กระทู้ที่แทรกไฟล์อัพโหลดไฟล์จากที่อื่น อาจจะถูกลบทิ้ง
 
โดย
อีเมล์
บวกค่าให้ถูก
<= ตัวเลขฮินดูอารบิก เช่น 123 (หรือล็อกอินเข้าระบบสมาชิกเพื่อไม่ต้องกรอก)







Exchange: นำเข้าสินค้าจากจีน, Taobao, เฟอร์นิเจอร์, ของพรีเมี่ยม, ร่ม, ปากกา, power bank, แฟลชไดร์ฟ, กระบอกน้ำ

Load balance : Server 00
ThaiCreate.Com Logo
© www.ThaiCreate.Com. 2003-2024 All Rights Reserved.
ไทยครีเอทบริการ จัดทำดูแลแก้ไข Web Application ทุกรูปแบบ (PHP, .Net Application, VB.Net, C#)
[Conditions Privacy Statement] ติดต่อโฆษณา 081-987-6107 อัตราราคา คลิกที่นี่