سؤال

لقد قمت ببناء بوابة جديدة على Rails والتي يمكن الوصول إليها كما يلي: https://xyz.com

المشكلة في هذا هي:1.) تحتوي على علامتي تبويب - "ShipmentInfo" و"لوحة معلومات تقادم الشحنات" وكلاهما يتم تنفيذهما باستخدام

<li> tags and YUI library’s tabview.
    <ul class="yui-nav">
        <li id="tab1" class="selected"><a href="#tab1">Shipment Info</a></li>
        <li id="tab2"><a href="#tab2">Aging Shipments Dashboard</a></li>
    </ul>

2.) عندما أنقر فوق علامة التبويب "لوحة معلومات الشحنات القديمة" - يجب أن يكون عنوان URL - https://xyz.com/#tab2 ولكن عليك أن ترى فقط https://xyz.com .أفترض ذلك بسبب تنفيذ علامات التبويب من جانب العميل.

3.) بعد أن أنقر على زر "الملخص الحالي" في علامة التبويب هذه، أحصل على النتائج المقابلة ولكن بدلاً من إظهار علامة التبويب النشطة التي تم تعيينها على "لوحة تحكم تقادم الشحنات" يتم دائمًا تعيينها على علامة التبويب "ShipmentInfo".

كيف يمكنني ضبط علامة التبويب النشطة للحصول على النتائج لعلامة التبويب المقابلة التي تم تقديم الطلب منها؟تستخدم جميع طلبات النماذج طريقة GET.

أم أن هناك طريقة يمكنني من خلالها أن أذكر صراحةً في Routes.rb، استنادًا إلى المعلمات التي يجب تعيين activeTab على "لوحة معلومات الشحنات القديمة"؟

شكرا ، رجا.

هل كانت مفيدة؟

المحلول

نعم. ربما لديك بالفعل هذه السطور في نهاية الملف routes.rb الخاص بك:

وmap.connect ': تحكم /: العمل /: معرف "   map.connect ': تحكم /: العمل /: الرقم: شكل'

وتغيير لهم:

وmap.connect '#: تحكم "   map.connect ': تحكم /: العمل /: معرف "   map.connect ': تحكم /: العمل /: الرقم: شكل'

وبهذه الطريقة يمكنك تحديد المتغيرين وحدات تحكم مختلفة داخل التطبيق القضبان. وربما كنت قد تفعل الشيء نفسه كما إجراءين جدا، ولكن هذا مكالمتك.

نصائح أخرى

بقدر ما أستطيع أن أقول، كل ما تفعله YUI لتحويل ذلك ul في مجموعة من علامات التبويب ربما لا علاقة له بـ hrefداخل li.أعتقد أنه يجب عليك التحقق من صيغة الاستخدام لإنتاج علامات التبويب الخاصة بك.

المضي قدما، href تشير الروابط فقط إلى نقاط الارتساء داخل الصفحة الحالية.مما يعني أن العميل (المتصفح) لا يتعين عليه إرسال طلب HTTP لإعادة الحصول على الصفحة الحالية.لا أعتقد أن المتصفحات الحديثة أبدًا يفعل.أشك في أنهم يرسلون الجزء الأساسي من عنوان URL (الجزء الذي يلي #) نظرًا لأن خادم HTTP لا يهتم بهذه المعلومات.

ما يعنيه هذا هو أنه لا يتم إخطار تطبيق Rails الخاص بك أبدًا عندما ينقر المستخدم على علامة تبويب، ولا يحصل أبدًا على جزء عنوان URL بعد ذلك #.لذلك لا يمكنك وضع أي قواعد حول هذا الموضوع في جدول التوجيه.

يحرر:لقد نسيت أن أخبرك بما يجب أن يحدث حقًا.

  1. يجب أن يتم إرفاق YUI (أو أي كود جافا سكريبت آخر) بنقرة onClick الخاصة بـ li, ، والتي تبدو كعلامة تبويب، من الوصف الخاص بك.
  2. عندما ينقر المستخدم على علامة تبويب، فإنه يقرأ عنوان URL، ويتكهن بطريقة ما بعلامة المحتوى التي سيتم عرضها كمحتوى علامة التبويب.على سبيل المثال، يمكن أن يكون هذا div الذي يحتوي على محتوى علامات التبويب الثانية، ويمكن أن يحتوي على id ل tab2 أو شيء ما.
  3. ثم يجعل محتوى علامة التبويب الحالية غير مرئي.عادةً ما يتم ذلك باستخدام CSS display الملكية، ووضعها على display: none.
  4. وأخيرًا، يصبح محتوى علامة التبويب التي تم النقر عليها مرئيًا.والذي سيتم باستخدام display: block أو شيء مشابه.
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top