|
|
|
ต่อยอด ajax php mysql autocomplete textbox ภาษาไทย VS "MSSQL" ครับ |
|
|
|
|
|
|
|
จากความเดิมตอนที่แล้ว อิๆ
Go to : autocomplete กับ MSSQL สำเหร็จแล้ว แต่ ภาษาไทยไม่ออก อะครับ ออกแต่ภาษา Eng นะครับ
Go to : ajax php mysql autocomplete textbox ภาษาไทย
https://www.thaicreate.com/community/ajax-php-mysql-autocomplete-textbox.html
ผมพยายามแปลง code เป็น mssql แต่ไม่ได้ผลเพราะ MSSQL ไม่สามารถใช้ฟังก์ชั่น where locate ได้หรืออาจใช้ได้แต่ต้องเขียน ฟังก์ชั่น locate ใน SQL ก่อนมันซับซ้อน มากครับผมจึงดัดแปลงตัว SELECT ขึ้นมาใหม่ครับตามนี้ได้เลยครับ
data.php
<?php
header("Content-type:text/html; charset=tis-620");
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0", false);
$link=mssql_connect("time.toon","admintoon","admin") or die("Error Connect to DB");
mssql_select_db("inv");
$q = urldecode($_GET["q"]);
$q= iconv('utf-8', 'tis-620', $_GET['q']);
mb_http_input('tis-620');
mb_language('uni');
ob_start('mb_output_handler');
$sql = "select top 50 // กำหนดจำนวนแถวที่ต้องการ
pd_nam // ฟิลที่ต้องการค้นหา
from pd_inv // ตารางที่ต้องการค้นหา
where pd_nam like '$q%' ORDER BY pd_nam desc";
$results = mssql_query($sql);
while ($row = mssql_fetch_array( $results )) {
$id = $row["pd_nam"];
$name =$row["pd_nam"];
$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();
?>
autocomplete.php
<meta http-equiv="Content-Type" content="text/html; charset=tis-620">
<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 "autosearch.php?q=" +(this.value); //ตรงนี้สำคัญมากครับ หากdatabase เป็น UTF-8 จะใช้ +encodeURIComponent +(this.value); แต่ถ้าเป็น tis-620 ต้องเป็น +(this.value); ครับ
});
}
make_autocom("show_arti_topic","h_arti_id");
</script>
หวังว่าคงเป็นประโยชน์สำหรับ นักพัฒนา PHP to MS-SQL นะครับ
Tag : PHP, Ms SQL Server 2005, Ms SQL Server 2008
|
ประวัติการแก้ไข 2012-02-03 14:15:28
|
|
|
|
|
Date :
2012-02-03 11:23:38 |
By :
time.toon |
View :
4395 |
Reply :
5 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ขอบคุณมากๆ เลยค่ะ นานๆ ทีจะเจอคนที่ PHP + MSSQL เลย
|
|
|
|
|
Date :
2013-09-19 16:10:14 |
By :
แอน |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ขอโทษที่ขุด ขึ้นมานะครับ
ถ้าหากผมต้องการจะ search 2 field จะต้องทำยังไงหรอครับ
เวลาค้าหาชื่อ ภาษาไทย มันไม่ได้อะครับ
|
|
|
|
|
Date :
2014-02-10 00:45:21 |
By :
systemanalysis |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 01
|