PDA

View Full Version : مشکل در تداخل Jquery در ترکیب Yii و یک پروژه دیگر



webnevesht
دوشنبه 31 شهریور 1393, 12:53 عصر
سلام.
ما روی یک پروژه داریم کار میکنیم که با PHP نوشته شده و از هیچ فریم ورکی استفاده نشده و صرفا MVC هست.
بخش های جدیدی به پروژه اضافه شده که قرار شده با Yii کار بشه و من روی اون بخش ها کار کردم. روال کارمم به این صورت بود که از اول نیومدم روی همون پروژه بخش جدید رو اضافه کنم و صرفا یک پروژه Yii جدید تعریف کردم و اون بخش جدید رو پیاده سازی کردم و همه چیز خیلی خوب اجرا میشد.

بعد از تموم شدن کار اومدیم اون بخش جدید رو که با Yii پیاده سازی شده بود رو به پروژه قبلی اضافه کردیم و Viewها در Layout اصلی همون پروژه نشون داده میشن.
اما مشکلی که به وجود اومده ظاهرا تداخل فایلهای JS و Jquery بخش نوشته شده در Yii بود که موقع اجرا شدن صفحات فایلهای JS اون بالاتر از فایل Jquery پروژه اجرا میشدن و برنامه پیغام خطا میداد.بعضی از اون فایلها رو تغییر دادم که بعد از فایل Jquery برنامه اجرا بشن و تقریبا برخی مشکلات حل شد.

اما مشکل اصلی ای که دارم اینه که وقتی برای نمایش لیست هام از CGridView خود Yii استفاده میکنم عملا بخش جستجوی پیشرفته و Delete کردن رکوردها که با Ajax انجام میشه در حقیقت انجام نمیشه و پیغام خطای زیر رو میده:

Bad Request
The request could not be understood by the server due to malformed syntax. Please do not repeat the request without modifications.
If you think this is a server error, please contact the webmaster.

توی Logاش هم اینو مینویسه:
error exception.CHttpException.400


....

جی کوئری پیش فرض خود Yii رو توی فایل کانفیگ غیرفعال کردم تا با جی کوئری لایوت اصلی برنامه که نسخه 1.11هست کار کنه اما حل نشد. فعالش هم که کردم و گفتم جی کوئریش هم نسخه خود جی کوئری لایوت اصلی برنامه بشه باز هم این مشکل حل نشد.
به نظرتون چیکار باید کنم؟

webnevesht
دوشنبه 31 شهریور 1393, 20:56 عصر
دوستان میشه راهنمایی کنین

MMSHFE
سه شنبه 01 مهر 1393, 08:39 صبح
خطای 400 یعنی صفحه مربوطه پیدا نشد. توی Firebug چک کنید ببینید صفحه موردتقاضا در AJAX چی بوده (سربرگ NET و گزینه XHR رو انتخاب کنید تا فقط درخواستهای AJAX رو ببینید).

webnevesht
سه شنبه 01 مهر 1393, 08:55 صبح
ممنون از پاسختون. اما مشکل تداخل فایلهای جی کوئری بود به نوعی.
این چند خط رو اضافه کردم به فایل Config حل شد مشکلم.


'clientScript'=>array(
'coreScriptPosition'=>CClientScript::POS_END,
'scriptMap' => array(
'jquery.js' => false,
'jquery.min.js' => false,
),
),