اذهب إلى المحتوى

السؤال

نشر

السلام عليكم 

عندي في الموقع صفحة تعرض المؤلفين في نموذج بحث في الصفحة 

في حال عملية البحث هل انقل البيانات الصفحة بحث خاصة في المؤلفين علماً بان صفحة البحث بتكون مشابهه الي صفحة المؤلفين الرئيسية , هل يوجد اختصار مثلاً او اسوي صفحة بحث ؟

وشكراُ

ملاحظة: اشتغل على مشروع بنمط MVC 

Recommended Posts

  • 0
نشر

وعليكم السلام ورحمة الله تعالى وبركاته،

لا تحتاج لإنشاء صفحة منفصلة للبحث يمكنك استخدام نفس صفحة المؤلفين مع إضافة معامل بحث اختياري في ال Controller مثل:

?search=keyword

وعند وجود قيمة بحث تفلتر البيانات من ال Model وترسلها لنفس ال View وإن لم يوجد معامل بحث تعرض كل المؤلفين وهذا سيوفر عليك تكرار الكود ويحافظ على نفس التصميم.

في حال كان سؤالك متعلقا بإحدى الدروس في الدورة أرجو نقله أو في المرة القادمة طرحه أسفل الدرس فهنا نجيب فقط على الأسئلة العامة الغير متعلقة بدروس الأكاديمية.

  • 0
نشر

وعليكم السلام ورحمة الله وبركاته.

لا يجب عليك إنشاء صفحة جديدة للبحث  حيث يجب إستخدام نفس صفحة المؤلفين فقط ستقوم بتغير البيانات حسب وجود البحث فالبحث ليس صفحة جديدة بل حالة مختلفة لنفس الصفحة .

حيث أن صفحة المؤلفين والبحث نفس الواجهة (View) تقريبا والاختلاف فقط في البيانات المعروضة وإذا قمت بتكرار View إذا هذا هو كود مكرر وسيكون صيانة الكود أصعب أو تعديله .

وفي ال MVC: ال View تكون واحدة و ال Controller هو فقط الذي يتحكم في المنطق.

ويكون الكود شئ كالتالي :

public function index()
{
    $search = $_GET['q'] ?? null;

    if ($search) {
        $authors = $this->authorModel->search($search);
    } else {
        $authors = $this->authorModel->getAll();
    }

    require view('authors/index', compact('authors', 'search'));
}

والعنوان url يكون كالتالي مثلا :

/authors
/authors?q=ahmed

لاحظ كيف إذا عثرنا على q في العنوان إذا هنا المستخدم قام بالبحث وحينها بدلا من عرض جميع البيانات نقوم بالفلترة .

وكود النموذج يكون كالتالي :

<form method="GET">
    <input type="text" name="q" value="<?= htmlspecialchars($search ?? '') ?>">
    <button>بحث</button>
</form>

 

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...