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 > สอบถามเรื่อง auto complete หน่อยครับ สวัสดีครับผมมีเรื่องรบกวนเพื่อนๆ พี่ๆ นิดหน่อยครับพอดี



 

สอบถามเรื่อง auto complete หน่อยครับ สวัสดีครับผมมีเรื่องรบกวนเพื่อนๆ พี่ๆ นิดหน่อยครับพอดี

 



Topic : 044696



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

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

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




สวัสดีครับ
ผมมีเรื่องรบกวนเพื่อนๆ พี่ๆ นิดหน่อยครับ

พอดี ผมใช้ code auto completion
Ninenik

คือ ก็สามารถดึงข้อมูลมาโชว์ได้ปกตินะครับ ในตัว suggestion น่ะครับ

แต่ผม อยากจะทราบว่า

ถ้าเรา จะค้นหาในหลายๆ field อ่ะครับ

เช่นในโค้ด นี้ ผมค้นหา แค่

Code
$sql=mysql_query("SELECT * FROM tb_material WHERE locate('$q',m_mid)>0 LIMIT 20");


คือผมอยากจะให้ค้นหา ไม่เฉพาะจากรหัส เช่น พิมพ์ ชื่อ เข้าไป ก็ดึงข้อมูลจาก ชื่อ มาค้นหาด้วยอ่ะครับ

ผมต้องกำหนด ในไฟล์ getdata.php ยังไงครับ

Code getdata.php
<?php
// เชื่อมต่อฐานข้อมูล
$link=mysql_connect("localhost","root","123456") or die("error".mysql_error());
mysql_select_db("database_name",$link);
mysql_query("set character set utf8");
 
$q = $_GET["q"];
$pagesize = 50; // จำนวนรายการที่ต้องการแสดง
$table_db="article"; // ตารางที่ต้องการค้นหา
$find_field="arti_topic"; // ฟิลที่ต้องการค้นหา
$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["arti_id"]; // ฟิลที่ต้องการส่งค่ากลับ
	$name = ucwords( strtolower( $row["arti_topic"] ) ); // ฟิลที่ต้องการแสดงค่า
	// ป้องกันเครื่องหมาย '
	$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>";
}
mysql_close();
?>



เพราะผมลองใส่ or locate('$q',m_name)>0 ไปแบบนี้แล้ว แต่ก็ไม่รู้ต้องกำหนดในส่วนของ while ยังไง อ่ะครับ

รบกวนแนะนำ ผมหน่อยนะครับ

ขอบคุณมากๆ ครับ



Tag : - - - -







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2010-06-29 20:41:33 By : yomaster View : 1511 Reply : 10
 

 

No. 1



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

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

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


ผมทำได้แล้วครับ

ให้มันแสดงทุกอันไปเลยครับ (กำปั้นทุบดินมากๆ ครับ) - -"

ใส่ locate() ตัวอื่นๆ

และใน while ก็ โชว์ ข้อมูลให้หมดเลยครับ - -"






Date : 2010-06-29 21:23:25 By : yomaster
 


 

No. 2



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

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

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


เอ่อ

ผมพบปัญหาครับ

echo "<li onselect=\"this.setText('$name').setValue('$id');\">$display_name</li>";

ตรงส่วนนี้อ่ะครับ

มันจะดึงค่าเดียวมาตลอดอ่ะครับ

ลองใส่เงื่อนไข ไป ก็ ไม่แสดงข้อมูลอะไรออกมาเลยอ่ะครับ

รบกวนช่วยผมหน่อยครับ

โค้ด getdata ผมนะครับ

getdata.php
<?php
require_once("config.php");
$q=$_GET["q"];
$sql=mysql_query("SELECT * FROM tb_material WHERE locate('$q',m_mid)>0 OR locate('$q',m_name)>0 OR locate('$q',m_brand)>0 LIMIT 20");
while($row=mysql_fetch_array($sql)){
	$id=$row['m_id'];
	$mid=ucwords(strtolower($row['m_mid']));
	//if($q=="$mid"){
		$mid=str_replace("'","'",$mid);
		$displayMID=preg_replace("/(".$q.")/i","<b>$1</b>",$mid);
		//$setT="$mid";
	//}
	$name=ucwords(strtolower($row['m_name']));
	//if($q=="$name"){
		$name=str_replace("'","'",$name);
		$displayName=preg_replace("/(".$q.")/i","<b>$1</b>",$name);
		//$setT="$name";
	//}
	$brand=ucwords(strtolower($row['m_brand']));
	//if($q=="$brand"){
		$brand=str_replace("'","'",$brand);
		$displayBrand=preg_replace("/(".$q.")/i","<b>$1</b>",$brand);
		//$setT="$brand";
	//}
	echo "<li onselect=\"this.setText('$setT').setValue('$setT');\">รหัส : $displayMID - ชื่อสินค้า : $displayName - ยี่ห้อ : $displayBrand</li>";
}
mysql_close($c);
?>

Date : 2010-06-29 21:40:52 By : yomaster
 

 

No. 3



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

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

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


ช่วยกระผมหน่อยค้าบบบ T_T
Date : 2010-06-29 23:53:45 By : yomaster
 


 

No. 4



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

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

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


T_T

ไม่มีเลยเหรอครับ
Date : 2010-06-30 08:27:36 By : yomaster
 


 

No. 5



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

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

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

Code (PHP)
$sql=mysql_query("SELECT CONCAT(ฟิวที่ต้องการหา1, ฟิวที่ต้องการหา2, ฟิวที่ต้องการหา3) AS ฟิวรวมนะ,  mid,name,brand   FROM tb_material WHERE ฟิวรวมนะ LIKE  '%$q%'  LIMIT 20");



concept คือมัดรวมก่อนแล้วค้นหา ส่วนตัวแสดง ส่วน field ที่แสดง tag li ก็ แสดงตามปกติ mid,name,brand
พอจะได้ไอเดียไหมครับ
ไม่เจอกันนาน สวัสดีครับคุณ YoYo
Date : 2010-06-30 10:34:30 By : peterxp
 


 

No. 6



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

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

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


ขอบคุณ คุณ PeterXP มากๆ ครับ

ได้ไอเดีย แต่ไปต่อไม่ได้ ซะงั้น - -"

ผมทำแบบนี้อ่ะครับ


Code (PHP)
$sql=@mysql_query("SELECT CONCAT(m_mid,m_name,m_brand) AS all_field,mid,name,brand FROM tb_material WHERE all_field LIKE '%$q%' LIMIT 20");
while($row=@mysql_fetch_array($sql)){




แล้วตรงแสดงข้อมูลล่ะครับ ผมทำแบบนี้

Code (PHP)
$text=ucwords(strtolower($row['all_field']));
$text=str_replace("'","'",$text);
$display=preg_replace("/(".$q.")/i","<b>$1</b>",$text);
echo "<li onselect=\"this.setText('$display').setValue('$display');\">$display</li>";
}


ปรากฏว่า ไม่แสดงข้อความใดๆ ทั้งสิ้นครับ - -"

ด้วยความสัตย์จริง
รบกวนคุณ peterXP อีกสักครั้งครับ (หรือจะท่านอื่นๆ ก็ได้ครับ) T_T

ปล. ร่ำรวยไปแล้วใช่ไหมครับ คุณ peterXP ฮ่าๆ
Date : 2010-06-30 20:57:58 By : yomaster
 


 

No. 7



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

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

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

ผมว่า php น่าจะถูกแล้ว
เหลือแต่ พวก preg_replace พวกนี้ครับ

Code (PHP)
$text=ucwords(strtolower($row['all_field']));
$text=str_replace("'","'",$text);
$display=preg_replace("/(".$q.")/i","<b>$1</b>",$text);
echo "<li onselect=\"this.setText('$display').setValue('$display');\">$display</li>";
}


น่าจะติดเครื่องหมายไรสักอยากใน text $display ผมเดาเอานะ
ลอง echo ทีส่วนๆ ดูสิครับ ใช้ firebug ช่วยหาก็ดีนะครับ

ปัญหาที่อาจตามมา ตอน submit
-ถ้าค้นหาแบบหลายคำ ต้อง ต่อ string ยังไงให้ query ออกมาได้ /search.php?val1=x&va2=y&var3=z

พี่ๆท่านอื่น ช่วยหน่อยครับ
Date : 2010-07-01 11:13:34 By : peterxp
 


 

No. 8



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

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

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

น่าจะช่วยได้
http://bassistance.de/jquery-plugins/jquery-plugin-autocomplete/
Date : 2010-07-02 10:13:30 By : peterxp
 


 

No. 9



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

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

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


ขอบพระคุณมากๆ ครับ ^-^
Date : 2010-07-05 08:10:01 By : yomaster
 


 

No. 10



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



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


พี่ๆค่ะ แล้วถ้า ต้องการให้ autocomplete แสดงผลจากสองฟิลด์ แต่ฟิลด์หนึ่งเป็นภาษาไทย อีกฟิลด์เป็นภาษาอังกฤษ

ประมาณว่า จะให้ค้นหาคำศัพท์ แล้วให้ suggest แสดงผลตามที่ค้นหา

ตอนนี้ทำให้ข้อมูลโชว์ ได้แล้ว แต่ได้แต่ภาษาเดียว รบกวนด้วยน่ะค่ะ
Date : 2011-06-21 13:54:27 By : nickname
 

   

ค้นหาข้อมูล


   
 

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