"> آموزش کار با autocomplete در زبان برنامه نویسی PHP

آموزش کار با autocomplete در زبان برنامه نویسی PHP

کار با autocomplete

بعد از چند نمونه سورسی که برای کار با autocomplete در زبان های VB.NET ، WPF مقاله ای در این باره نوشتیم این بار سری به زبان PHP زدیم و این پروژه php را برای شما آماده کرده ایم .برای زبان های همچون سی شارپ و ASP.NET نیز در مقاله ها بعدی براتون آماده خواهم کرد. autocomplete  یعنی همان تکمیل خودکار توسط پروژه ، به این صورت با دادن حرف اول به جستجوگر تمامی حرف های موجود در دیتابیس را که با آن حرف شروع میشوند برای شما لیست میکند ، که بسیار کیفیت کار را بالا خواهد برد.در ادامه همراه ما باشید.

شروع آموزش کار با autocomplete

ما در این مقاله autocomplete را توسط کتابخانه Jquery UI فراخوانی میکنیم.

برای استفاده از این قابلیت، اول از همه می بایست ۲ کتابخانه JQuery و JQuery Ui رو به همراه شیوه نامه ی jquery-ui.min.css (که ظاهر لیست dropdown رو استایل دهی میکنه) در صفحه قالبمون فراخوانی کنیم.


<link rel="stylesheet" href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.10.1/themes/base/minified/jquery-ui.min.css" type="text/css" />

<script type="text/javascript" src="http://code.jquery.com/jquery-1.9.1.min.js"></script>
<script type="text/javascript" src="http://code.jquery.com/ui/1.10.1/jquery-ui.min.js"></script>

تعریف یک فیلد ورودی که بایستی حتما یک مشخصه class یا id رو داشته باشه. این فیلد رو ما به صورت زیر تعریف کردیم که البته شما میتونید از اون در یک form هم استفاده کنید.

<input type='text' name='country' value='' class='autocom'>

برای ایجاد این منبع، محل سورس رو به فایلی با نام Search.php آدرس دهی میکنیم

Jquery UI

<script type="text/javascript">
$(function() {
	$(".autocom").autocomplete({
		source: "search.php"
	});
});
</script>

چاپ نتایج پایگاه داده در فرمت JSON

اتصال به پایگاه داده و دریافت نتایج از یک جدول نمونه است. این کار رو ما در فایل search.php – که در بالا آدرس دهی کردیم.

PHP


<?php
define('DB_SERVER', 'localhost');//نام سرور
define('DB_USER', 'root');//نام کاربری دیتابیس
define('DB_PASSWORD', '');//رمز عبور دیتابیس
define('DB_NAME', ''); //نام دیتابیس

if (isset($_GET['term'])){ //شرط دریافت متد GET از URL. اگر url در خواستی به این فایل، دارای متد Get و نام term نباشد، هیچ اتفاقی نخواهد افتاد.
$return_arr = array();

try { //تلاش برای انجام فرآیندها...
$conn = new PDO("mysql:host=".DB_SERVER.";dbname=".DB_NAME, DB_USER, DB_PASSWORD); //ایجاد اتصال به پایگاه داده
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); //تعیین ویژگی های برخورد با خطا
$conn->exec("set names utf8");//این خط برای پشتیبانی از رشته های utf8 که فارسی هم در این دسته قرار داره نوشته شده.

$stmt = $conn->prepare('SELECT country FROM countries WHERE country LIKE :term'); //فراهم آوردی اطلاعات مورد نظر از ستون country و جدول countries. برای ایجاد مشابهت، حتما باید از دستور like در Sql استفاده کنیم.
$stmt->execute(array('term' => '%'.$_GET['term'].'%')); //این خط، فراهم آوری اطلاعات بالا رو اجرا میکنه و به متغیر :term که در قطعه کد بالا نوشته شده بود، محتوای متد GET رو مقدار دهی میکنه.

while($row = $stmt->fetch()) { //ایجاد یک حلقه و ذخیره کردن اطلاعات هر سطر در متغیر row.
$return_arr[] =  $row['country']; //نتایج ستون country در آرایه return_arr ذخیره می شود.
}

} catch(PDOException $e) { // در صورت ایجاد خطا در مرحله try، این بخش اجرا شده و متن خطا چاپ میشود.
echo 'ERROR: ' . $e->getMessage();
}

echo json_encode($return_arr); //چاپ نتایج آرایه return_arr به فرمت استاندارد JSON
}
?>

در این پروژه از تکنولوژی PDO برای ارتباط با دیتابیس استفاده شده است که چندی پیش مقاله ای برای کار با PDO در PHP منتشر کردیم.

با تشکر از علی میرزایی عزیز که از مقاله ایشون نیز برای کامل شدن مقاله استفاده کردم.

فایل نیز ضمیمه کردم.

محبوبه میرزائی

نوشته‌های مرتبط

دیدگاه‌ها

*
*

این سایت از اکیسمت برای کاهش هرزنامه استفاده می کند. بیاموزید که چگونه اطلاعات دیدگاه های شما پردازش می‌شوند.

کدیشن ! مارکت پروژه های برنامه نویسی راه اندازی شدیه توکه پا بریم ببینم