|
|
|
การค้นหาข้อมูล คือต้องการค้นหาข้อมูลในฐานข้อมูล แบบไม่ต้องกด submit ค่ะ |
|
|
|
|
|
|
|
แบบ กูเกิ้ลหรือปล่าว นะ
|
|
|
|
|
Date :
2009-12-01 16:38:55 |
By :
heilender |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Jquery ม่ายก้อ Ajax ค่ะ เดี๋ยวจาลองดูตัวอย่างใหค่ะ
|
|
|
|
|
Date :
2009-12-01 17:00:20 |
By :
gummezaka |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ลองดูนะค่ะ ม่ายแน่ใจว่าใช่อย่างที่ต้องการรึป่าว
Code (PHP)
<?
//ajaxsearch.php
//กำหนด Header ให้รองรับภาษาไทย
header("content-type: application/x-javascript; charset=TIS-620");
//ค่ากำหนดของฐานข้อมูล
//จากตัวอย่างเป็นการแสดงข้อมูลจากเว็บไซต์แห่งนี้
include("config/config.php"); //ฟังก์ชั่น
include("config/tdb.class.php"); //เรียกใช้ คลาส text database
include("config/function.php"); //ฟังก์ชั่น
$db=new tdb("$config[data]", "db.tdb"); //เปิดฐานข้อมูล
$db->get("webboard", $config); //โหลด config
$id=$_GET["id];
$module=$_GET["module];
$category=$_GET["category];
$search=$_GET["search];
if (isset($id)) {//ส่วนการลิสต์รายชื่อกลุ่ม
//แสดงรายการในกลุ่ม
echo "<td><select id=cbsearchcategory onchange='categorychanged(this)'> ";
echo "<option value=-1>เลือกหมวด</option> ";
//ลิสต์รายการภายในกลุ่มที่เลือกออกมาแสดง ในส่วนนี้ถ้าเป็น MySQL ให้เปลี่ยนโค้ดเอา
$listofcategory=$db->basicQuery("webboardcategory", "cat_groupid", $id); //ลิสต์รายการกลุ่ม
for ($i=0; $i<count($listofcategory); $i++) {
$topic=$listofcategory[$i][cat_topic];
$name=$listofcategory[$i][cat_name];
echo "<option value='$name'>$topic</option> ";
}
echo "</select></td> ";
echo "<td id=search_ajax_form style='display:none'> ";
echo "คำค้นหา : <input type=text name=txt_search id=txt_search value='$search' onKeyUp='searchkeyup(this.value)' onblur='hidesearch();' onfocus='searchkeyup(this.value)' onmouseup='searchkeyup(this.value)'> ";
echo "<input type=button name=submit value=ค้นหา onclick='searchsubmit(txt_search.value);'></td> ";
} else { //ส่วนค้นหาข้อมูล
//ค้นหาข้อมูล ในส่วนนี้ถ้าเป็น MySQL ให้เปลี่ยนโค้ดเอา
$db->webboardQuery($category, $search, $listrec);
sortby($listrec, wb_id); //เรียงลำดับตาม id
//แสดงผลการค้นหา
$count=count($listrec)-1;
if ($count<0) echo "<tr><td><font color=red>ไม่พบข้อมูลที่มีคำว่า </font>\"$search\"</td></tr> ";
else {
for ($i=$count; $i>=0; $i--) { //แสดงจากกระทู้ล่าสุดไปหากระทู้แรก
$id=$listrec[$i][wb_id];
$topic=$listrec[$i][wb_topic];
$no=sprintf("%04d", $id);
$date=$listrec[$i][wb_date];
echo "<tr><td><img src=images/point2.gif> <font color=#2281A4 size=1>[$no]</font> <a href='view.php?module=$module&category=$category&wb_id=$id&search=$search' target=_blank>$topic</a> <font color=#666666 size=1>($date)</font></td></tr> ";
}
}
}
?>
|
|
|
|
|
Date :
2009-12-01 17:30:46 |
By :
gummezaka |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
โค้ดส่วนนี้ เป็น CSS กำหนดรูปแบบของพื้นที่แสดงผลการค้นหา
Code (PHP)
<script language=Javascript>
function Inint_AJAX() {
try { return new ActiveXObject("Msxml2.XMLHTTP"); } catch(e) {} //IE
try { return new ActiveXObject("Microsoft.XMLHTTP"); } catch(e) {} //IE
try { return new XMLHttpRequest(); } catch(e) {} //Native Javascript
alert("XMLHttpRequest not supported");
return null;
};
var req_search = Inint_AJAX();
function groupchange(obj) {
req_search.abort();
document.getElementById("search_hint").innerHTML="<font color=navy>คำแนะนำ :</font> กรุณาเลือกว่าจะค้นหาจากหมวดใด ?";
var id=obj.options[obj.selectedIndex].id;
if (id=='-1') {
document.getElementById("td_ajax_search").innerHTML='';
} else {
req_search.onreadystatechange = function () {
if (req_search.readyState==4) {
if (req_search.status==200) {
var ret=req_search.responseText; //รับค่ากลับมา
document.getElementById("td_ajax_search").innerHTML="<table><tr>"+ret+"</tr></table>";
document.getElementById("cbsearchcategory").focus();
}
}
};
req_search.open("GET", "ajaxsearch.php?id="+id); //สร้าง connection
req_search.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); // set Header
req_search.send(null); //ส่งค่า
}
}
function categorychanged(obj) {
if (obj.selectedIndex!=0) {
document.getElementById("search_ajax_form").style.display='block';
document.getElementById("search_hint").innerHTML="<font color=navy>คำแนะนำ :</font> ใส่ คำทีต้องการค้นหาในช่อง <b>คำค้นหา</b> ถ้าไม่พบ ลองเปลี่ยนไปค้นหาในกลุ่มอื่น";
txt_search.focus();
} else {
document.getElementById("search_ajax_form").style.display='none';
document.getElementById("search_hint").innerHTML="<font color=navy>คำแนะนำ :</font> กรุณาเลือกว่าจะค้นหาจากหมวดใด ?";
}
}
function searchsubmit(value) {
var module=document.getElementById("cbsearchmodule").value;
var category=document.getElementById("cbsearchcategory").value;
loadpage(module, category, value, 1, 'list');
}
function searchkeyup(value) {
req_search.abort(); //หยุดการทำงานก่อนหน้า ป้องกันการกดคีย์อย่างรวดเร็ว
if (value.length<2) { //ถ้ามีข้อความน้อยกว่า 2 ตัวอักษร ไม่ต้องค้นหา เพราะจะให้ผลลัพท์ มากเกินไป
hidesearch();
return ;
}
var module=document.getElementById("cbsearchmodule").value;
var category=document.getElementById("cbsearchcategory").value;
req_search.onreadystatechange = function () {
if (req_search.readyState==4) {
if (req_search.status==200) {
var ret=req_search.responseText; //รับค่ากลับมา
//คืนค่าที่ค้นหาได้ไปแสดงผล
document.getElementById("search_result").innerHTML="<table>"+ret+"</table>";
//แสดง ผลการค้นหา
overlay("txt_search", "search_result");
}
}
};
req_search.open("GET", "ajaxsearch.php?module="+module+"&category="+category+"&search="+value); //สร้าง connection
req_search.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); // set Header
req_search.send(null); //ส่งค่า
}
//โค้ด window popup
function getposOffset(overlay, offsettype){
var totaloffset=(offsettype=="left")? overlay.offsetLeft : overlay.offsetTop;
var parentEl=overlay.offsetParent;
while (parentEl!=null) {
totaloffset=(offsettype=="left")? totaloffset+parentEl.offsetLeft : totaloffset+parentEl.offsetTop;
parentEl=parentEl.offsetParent;
}
return totaloffset;
}
function overlay(curobjstr, subobjstr) {
if (document.getElementById) {
var subobj=document.getElementById(subobjstr);
var curobj=document.getElementById(curobjstr);
subobj.style.display="block";
var xpos=getposOffset(curobj, "left");
xpos=xpos-subobj.offsetWidth+curobj.offsetWidth;
if (xpos<0) xpos=0;
subobj.style.left=xpos+"px";
var ypos=getposOffset(curobj, "top");
subobj.style.top=ypos+curobj.offsetHeight+2+"px";
};
}
var timedelay=0;
function hidesearch() {
timedelay=setTimeout('document.getElementById("search_result").style.display="none"', 250);
}
function delayhidesearch() {
clearTimeout(timedelay);
}
</script>
|
|
|
|
|
Date :
2009-12-01 17:32:01 |
By :
gummezaka |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 00
|