|
|
|
สอบถามเรื่องการใช้งาน autocomplete พอดีมีปัญหาเกี่ยวกับการแสดงผลของภาษาไทยครับ |
|
|
|
|
|
|
|
Code (PHP)
<html>
<head>
<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">
// แทรก javascript
</script>
</body>
</html>
Code (PHP)
<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 "gdata.php?q=" +encodeURIComponent(this.value);
});
}
// การใช้งาน
// make_autocom(" id ของ input ตัวที่ต้องการกำหนด "," id ของ input ตัวที่ต้องการรับค่า");
make_autocom("show_arti_topic","h_arti_id");
</script>
Code (PHP)
<?php
<? session_start();
header("Content-type: text/xml; charset=UTF-8");
include ("include/inc.function.php");
$db1=new db;
$db1->open();
$db1->setContent("UTF8");
if(isset($_GET["q"]))
{
$q = urldecode($_GET["q"]);
$pagesize = 50; // เธเธณเธเธงเธเธฃเธฒเธขเธเธฒเธฃเธ—เธตเนเธ•เนเธญเธเธเธฒเธฃเนเธชเธ”เธ
$table_db="customer"; // เธ•เธฒเธฃเธฒเธเธ—เธตเนเธ•เนเธญเธเธเธฒเธฃเธเนเธเธซเธฒ
$find_field="cus_name"; // เธเธดเธฅเธ—เธตเนเธ•เนเธญเธเธเธฒเธฃเธเนเธเธซเธฒ
$sql = "select * from $table_db where locate('$q', $find_field) > 0 order by locate('$q', $find_field), $find_field limit $pagesize";
$results = mysql_query($sql);
while ($row = mysql_fetch_array( $results )) {
$id = $row["cus_id"]; // เธเธดเธฅเธ—เธตเนเธ•เนเธญเธเธเธฒเธฃเธชเนเธเธเนเธฒเธเธฅเธฑเธ
//$name = ucwords( strtolower( $row["cus_name"] ) ); // เธเธดเธฅเธ—เธตเนเธ•เนเธญเธเธเธฒเธฃเนเธชเธ”เธเธเนเธฒ
$name = $row["cus_name"];
// เธเนเธญเธเธเธฑเธเน€เธเธฃเธทเนเธญเธเธซเธกเธฒเธข '
$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>";
}
}
$db1->close();
?>
มีปัญหากับการแสดงผลภาษาไทยเป็นภาษาต่างดาวครับ เมื่อมีการคลิกในส่วนของ icon ค้นหา มุมขวามือของ ฟิลล์กรอกข้อมูล แต่ถ้าพิมพ์ชื่อในฟิลด์จะแสดงชื่อภาษาไทยได้ตามปกติ
ซึ่งเมื่่อลองแก้ไขโค้ด
Code (PHP)
header("Content-type: text/xml; charset=TIS-620");
include ("include/inc.function.php");
$db1=new db;
$db1->open();
$db1->setContent("tis620");
ผลลัพธ์ที่ออกมาคือ เมื่อมีการคลิกในส่วนของ icon ค้นหา มุมขวามือของ ฟิลล์กรอกข้อมูล ข้อมูลเป็นภาษาไทย แต่เมื่อพิมพ์ชื่อ ในส่วนของฟิลล์ดังกล่าวข้อมูลไม่โชว์
รบกวนขอคำแนะนำหน่อยครับ
Tag : PHP
|
|
|
|
|
|
Date :
2013-05-15 02:39:58 |
By :
asustak |
View :
951 |
Reply :
3 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ajax php mysql autocomplete textbox ภาษาไทย
|
|
|
|
|
Date :
2013-05-15 06:20:47 |
By :
mr.win |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ตอนนี้แก้ได้แล้วครับ
จริงๆแล้วปัญหามาจากในส่วนของ
Code (PHP)
$display_name = preg_replace("/(" . $q . ")/i", "<b>$1</b>", $name);
เมื่อตัดทิ้งไปเปลี่ยนเป็น
Code (PHP)
$display_name = $name;
สามารถแสดงผลได้ตามปกติครับ
|
|
|
|
|
Date :
2013-05-15 11:34:46 |
By :
asustak |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Date :
2013-05-16 06:51:27 |
By :
mr.win |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 05
|