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 > มีปัญหาการใช้ภาษาไทยกับ sqlsrv ในการค้นหาโดยใช้ autocomplete แต่ถ้าไม่ใช้ผลการค้นหากลับมีภาษาไทยออกมาด้วย



 

มีปัญหาการใช้ภาษาไทยกับ sqlsrv ในการค้นหาโดยใช้ autocomplete แต่ถ้าไม่ใช้ผลการค้นหากลับมีภาษาไทยออกมาด้วย

 



Topic : 118275



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



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




มีปัญหาการใช้ภาษาไทย ไม่มีการตอบรับในการค้นหา autocomplete แต่ภาษาอังกฤษกลับมี

ถ้าไม่ต้องใช้ autocomplete ในการค้นหา ภาษาไทยกลับมี

การค้นหา (index.php)
Code การค้นหา (index.php)
<html>
<head>
<title>ค้นหาสินค้า</title>
<script type="text/javascript" src="js/autocomplete.js"></script>  
<script type="text/javascript" src="js/jquery.min.js"></script>
</head>
<body>
<form action="begin.php" method="post">
ชื่อสินค้า : <input type="text" name="product" id="product" value="" /><br />
<input type=:submit" value="ค้นหา" />
</form>
<script language="javascript">
/// JavaScript AutoComplete
</script>
</body>
</html>


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


product.php
Code product.php
echo "<meta http-equiv=\"content-type\" content=\"text/html; charset=utf-8\" />";

ini_set('display_errors', 1);
error_reporting(~0);
$dbname1 = array("Database"=>"mybaby", "UID"=>"sa", "PWD"=>"", "MultipleActiveResultSets"=>true);
$dbname = sqlsrv_connect("localhost\sa", $dbname1);

header("content-type: application/x-javascript; charset=UTF-8");

$q = iconv("windows-874", "utf-8", trim($_REQUEST['q']));
//$q = trim(urldecode($_REQUEST['q']));

$product_1 = sqlsrv_query($dbname, "select c.* from (select row_number() over(order by product asc) as rowid, product from product where (isnull(product, '') like '%".$q."%') ) as c where c.rowid > 0 and c.rowid <= 10");

while ($product_2 = sqlsrv_fetch_array($product_1, SQLSRV_FETCH_ASSOC)) {

$product_3 = iconv("windows-874", "utf-8", trim($product_2['product']));

echo "<li onSelect=\"this.setText('".$product_3."').setValue('".$product_3."')\">".$product_3."</li>";

}




Tag : PHP, Ajax, jQuery, VS 2008 (.NET 3.x)







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2015-08-07 17:00:03 By : suparuark View : 1615 Reply : 7
 

 

No. 1



โพสกระทู้ ( 2,258 )
บทความ ( 5 )

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

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

ลองสลับ $q = iconv("windows-874", "utf-8", trim($_REQUEST['q'])); เป็น $q = iconv("utf-8", "windows-874", trim($_REQUEST['q'])); ดูครับ






แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-08-07 17:08:49 By : Manussawin
 


 

No. 2



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



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


สลับแล้วครับ ก้อยังไม่ออกเหมือนเดิมครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-08-07 17:33:45 By : suparuark
 

 

No. 3



โพสกระทู้ ( 2,258 )
บทความ ( 5 )

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

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

ลองแก้ไข

$dbname1 = array("Database"=>"mybaby", "UID"=>"sa", "PWD"=>"", "MultipleActiveResultSets"=>true);


เป็นข้างล่างดูครับ

$dbname1 = array("Database"=>"mybaby", "UID"=>"sa", "PWD"=>"", "MultipleActiveResultSets"=>true, "CharacterSet" => "UTF-8");

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-08-07 18:05:34 By : Manussawin
 


 

No. 4



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



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


เป็นรูปแบบที่ดีมากครับ เพราะทำให้ประหยัดในการเขียนทุกๆ file แต่ผลลัพธ์ในการค้นหาก็เหมือนเดิมครับ
ขึ้นเฉพาะกรอกภาษาอังกฤษ แต่กรอกภาษาไทยกลับนิ่งเลยครับ

english

thai

Code การค้นหา (index.php)
<html>
<head>
<title>ค้นหาสินค้า</title>
<script type="text/javascript" src="js/autocomplete.js"></script>  
<script type="text/javascript" src="js/jquery.min.js"></script>
</head>
<body>
<form action="begin.php" method="post">
ชื่อสินค้า : <input type="text" name="product" id="product" value="" /><br />
<input type=:submit" value="ค้นหา" />
</form>
<script language="javascript">
function product(autoObj,showObj) {
var mkAutoObj=autoObj;
var mkSerValObj=showObj;
new Autocomplete(mkAutoObj, function() {
this.setValue = function(id) {
}
if ( this.isModified )
this.setValue("");
if ( this.value.length < 1 && this.isNotClick )
return;
return "product.php?q=" +encodeURIComponent(this.value);
});
}
product("product","");
</script>
</body>
</html>


Code product.php
echo "<meta http-equiv=\"content-type\" content=\"text/html; charset=utf-8\" />";

ini_set('display_errors', 1);
error_reporting(~0);
$dbname1 = array("Database"=>"mybaby", "UID"=>"sa", "PWD"=>"", "MultipleActiveResultSets"=>true, "CharacterSet" => "UTF-8");
$dbname = sqlsrv_connect("localhost\sa", $dbname1);

header("content-type: application/x-javascript; charset=UTF-8");

$q = trim($_REQUEST['q']);
//$q = iconv("windows-874", "utf-8", trim($_REQUEST['q']));
//$q = trim(urldecode($_REQUEST['q']));

$product_1 = sqlsrv_query($dbname, "select c.* from (select row_number() over(order by product asc) as rowid, product from product where (isnull(product, '') like '%".$q."%') ) as c where c.rowid > 0 and c.rowid <= 10");

while ($product_2 = sqlsrv_fetch_array($product_1, SQLSRV_FETCH_ASSOC)) {

$product_3 = trim($product_2['product']);
//$product_3 = iconv("windows-874", "utf-8", trim($product_2['product']));

echo "<li onSelect=\"this.setText('".$product_3."').setValue('".$product_3."')\">".$product_3."</li>";

}

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-08-10 09:25:07 By : suparuark
 


 

No. 5



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



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


ข้อมูลที่ค้นหา ต้องเป็นรูปแบบเดียวกับข้อมูลที่เอาเข้าไปครับ

เช่น ตอนเอาเข้าไปเป็น windows-874
ก็ต้องแปลงเป็น windows-874 ก่อนเอาไปใช้ใน where field like '%%'

/**/ อาจจะไม่ตรงกันใน SQL Server แต่ละ version
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-08-10 09:47:24 By : CasanovaKung
 


 

No. 6



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



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


ทำได้แล้วครับ ขอบคุณ คุณ SiamHTTP และ คุณ iamje ที่ให้ความรู้แทรกขึ้นมาด้วยครับ

เพียงแค่ปรับเปลี่ยน code ใหม่ ให้ดึงภาษาไทยให้ขึ้นมา

ใน file index.php เปลี่ยนตรงส่วนของ JavaScript
return "product.php?q=" +encodeURIComponent(this.value);


เปลี่ยนเป็น

return "product.php?q=" +decodeURIComponent(this.value);


เพิ่มเติมให้ตรงกับภาษาไทยและภาษาโปรแกรมในส่วนของ product.php

ini_set('display_errors', 1);
error_reporting(~0);
$dbname1 = array("Database"=>"mybaby", "UID"=>"sa", "PWD"=>"", "MultipleActiveResultSets"=>true);
$dbname = sqlsrv_connect("localhost\sa", $dbname1);

$q = trim($_REQUEST['q']);

$product_1 = sqlsrv_query($dbname, "select c.* from (select row_number() over(order by product asc) as rowid, product from product where (isnull(product, '') like '%".iconv("utf-8", "windows-874", trim($q))."%') ) as c where c.rowid > 0 and c.rowid <= 10");

while ($product_2 = sqlsrv_fetch_array($product_1, SQLSRV_FETCH_ASSOC)) {

$product_3 = iconv("windows-874", "utf-8", trim($product_2['product']));
echo "<li onSelect=\"this.setText('".$product_3."').setValue('".$product_3."')\">".$product_3."</li>";

}

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-08-10 16:46:06 By : suparuark
 


 

No. 7



โพสกระทู้ ( 2,258 )
บทความ ( 5 )

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

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


แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-08-12 03:31:17 By : Manussawin
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : มีปัญหาการใช้ภาษาไทยกับ sqlsrv ในการค้นหาโดยใช้ autocomplete แต่ถ้าไม่ใช้ผลการค้นหากลับมีภาษาไทยออกมาด้วย
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ 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 03
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 อัตราราคา คลิกที่นี่