عملية إجراء بحث مباشر في Laravel باستخدام AJAX. يعد أكثر فائدة من شريط البحث العادي لأنه سيقوم بتحميل بيانات المحتوى في الوقت الفعلي دون تحديث صفحة الويب.
بالنسبة لأي موقع ويب للتجارة الإلكترونية سيتاح لة فرصة زيادة المبيعات لأن العميل يمكنه رؤية المزيد من قسم المنتجات ذات الصلة.
Laravel 9 live search by ajax جدول المحتويات
متطلبات التثبيت
تثبيت خادم الويب XAMPP
لنظام Windows:
تحميل XAMPP: قم بتحميل XAMPP من موقعه الرسمي: https://www.apachefriends.org/index.html
تثبيت XAMPP:
- قم بتشغيل ملف التثبيت الذي قمت بتحميله.
- اتبع الخطوات المعروضة في المعالج لاختيار المكونات التي تريد تثبيتها (Apache و MySQL على الأقل).
- اختر مجلد لتثبيت XAMPP.
تشغيل Apache و MySQL:
- بعد التثبيت، قم بتشغيل XAMPP Control Panel.
- انقر فوق “Start” بجانب Apache و MySQL لتشغيل الخوادم.
تحقق من العمل:
- افتح متصفح الويب وقم بزيارة
http://localhost
للتأكد من أن XAMPP تعمل بشكل صحيح.
- افتح متصفح الويب وقم بزيارة
تثبيت Laravel 9
بعد التاكد من تثبيت composer علي الجهاز الخاص بك استخدم الكود التالي:
composer create-project --prefer-dist laravel/laravel live-search "9.*"
بعد اكتمال التثبيت، انتقل إلى مجلد المشروع باستخدام:
cd live-search
الاتصال بقاعدة البيانات Database
بعد تثبيت تطبيق Laravel 9، نحتاج أولاً إلى إنشاء اتصال بقاعدة بيانات MySQL. لذلك، يتعين علينا فتح ملف .env وتحت هذا الملف، نحتاج إلى إضافة تكوين قاعدة بيانات MySQL مثل اسم قاعدة بيانات laravel واسم مستخدم قاعدة بيانات MySQL وتفاصيل كلمة المرور. بمجرد تحديد هذه التفاصيل، سيتم إجراء اتصال بقاعدة بيانات MySQL في إطار عمل Laravel 9. يمكنك العثور أدناه على تفاصيل تكوين قاعدة بيانات MySQL.
env.
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=live-search
DB_USERNAME=root
DB_PASSWORD=
بعد ذلك نقوم بانشاء جدول العملاء customers
customers table
php artisan make:migration create_customers_table
ثم نقوم بادخال بيانات الجدول بعد اتباع الرابط database/migration/<date>_create_customers_table.php بالشكل الاتي
Schema::create('customers', function (Blueprint $table) {
$table->id();
$table->string('CustomerName');
$table->string('Address');
$table->string('City');
$table->string('PostalCode');
$table->string('Country');
$table->timestamps();
});
بعد ذلك نقوم بترحيل بيانات الجدول الي database باستخدام الكود
php artisan migrate
نذهب الي قواعد البيانات الخاصة بالمشروع والتي تسمى live-search ثم الجدول customrs وداخل تبويت SQL نطبع الكود الاتي ثم Go
INSERT INTO `customers`(`CustomerName`, `Address`, `City`, `PostalCode`, `Country`)
VALUES
('ahmed','mohandseen','cairo','1234','egypt'),
('mohamed','nasr','cairo','7455','egypt'),
('saleh','maady','cairo','5582','egypt'),
('hanaa','nazla','giza','3251','egypt'),
('tamer','eltalbia','cairo','4789','egypt'),
('ali','matrooh','matrooh','0000','egypt'),
('shref','gdida','ismailia','9654','egypt')
Setup Controller
LiveSearchController
php artisan make:controller LiveSearchController
نتبع الرابط App\Http\Controllers \LiveSearchControllerونقوم بنسخ الكود التالي بداخل الصفحة
ajax())
{
$output = '';
$query = $request->get('query');
if($query != '')
{
$data = DB::table('customers')
->where('CustomerName', 'like', '%'.$query.'%')
->orWhere('Address', 'like', '%'.$query.'%')
->orWhere('City', 'like', '%'.$query.'%')
->orWhere('PostalCode', 'like', '%'.$query.'%')
->orWhere('Country', 'like', '%'.$query.'%')
->orderBy('id', 'desc')
->get();
}
else
{
$data = DB::table('customers')
->orderBy('id', 'desc')
->get();
}
$total_row = $data->count();
if($total_row > 0)
{
foreach($data as $row)
{
$output .= '
'.$row->CustomerName.'
'.$row->Address.'
'.$row->City.'
'.$row->PostalCode.'
'.$row->Country.'
';
}
}
else
{
$output = '
No Data Found
';
}
$data = array(
'table_data' => $output,
'total_data' => $total_row
);
echo json_encode($data);
}
}
}
Setup blade view
live_search.blade.php
داخل resources/views ننشيء ملف باسم live_search.blade.php ثم نقوم بنسخ الكود التالي داخله
Laravel 9 Live Search By AJAX
Laravel 9 Live Search By AJAX
Search Customer Data
Total Data :
Customer Name
Address
City
Postal Code
Country
The Routes
web.php
داخل مجلد routes يوجد ملف web.php نقوم بنسخ الكود التالي داخله
name('live_search.action');
في حالة ظهور اي مشكلة اثناء التطبيق ساكون سعيد بحلها معكم . حظ سعيد
Sharing to