استفاده از جستجوی پیشرفته

[right]سلام دوستان ، خسته نباشید ، یه سوال داشتم ، من می خوام تو صفحه ی اول سایتم از جستجوی پیشرفته ای که در صفحه ی

admin

هست استفاده کنم، اما می خوام وقتی بر روی دکمه ی جستجو کلیک شد، به یه صفحه ی دیگه بره و اطلاعات رو اونجا نشون بده ، در واقع توی صفحه ی ادمین، جستجوی پیشرفته ای که وجود داره، جدولی که واقع در همون صفحه هست رو آپدیت می کنه ، اما من چون توی صفحه ی اول سایتم می خوام از قابلیت جستجوی پیشرفته استفاده کنم، نمی خوام اطلاعات توی همون صفحه نمایش داده بشه بلکه می خوام به یک صفحه ی جدید بره، چه جوری می تونم این کار رو انجام بدم ؟[/right]

[rtl]

برای نوشتن جستجو معمولا هر برنامه نویس روش خودش رو داره بنده روش زیر رو پیشنهاد می کنم

اول فرم جستجویی ایجاد کنید و مقادیر ارسالی رو در کنترلر دریافت کنید

سپس اعتبارسنجی های لازم رو روی مقادیر انجام داده به مدل ارسال کنید

در مدل با چک کردن پر یا خالی بودن مقادیر کوئری رو بسازید یعنی برای هر مقدار شرط پر بودن را بررسی کرده در صورتی که شرط برقرار بود آن مقدار و فیلد مربوطه را در کوئری بیاورید.

در تولید کوئری مقادیری که ثابت نیستند را با دستور like چک کنید. برای مثال کلمه ای را در عنوان ، توضیحات و کلمات کلیدی مطالبتون میخواید پیدا کنید میتونید از لایک کمک بگیرید.

http://www.w3schools.com/sql/sql_like.asp

نتیجه رو در هر صفحه ای که دوست دارید نمایش بدید

نتیجه جستجویی مثل این میشه:

http://ostovarit.com/news

[/rtl]

[right]ممنون از پاسختون دوست عزیز ، من می خواستم از جستجوی پیشرفته ی خود

yii

که در صفحات

admin

استفاده شده استفاده کنم و نتیجه ی اون رو به یک صفحه ی دیگر بفرستم .این امکان وجود نداره ؟[/right]

[font="Tahoma"] [rtl]چون خیلی خیلی روی این مسئله که در یک صفحه جدید باز بشه تاکید داشتی، فکر میکنم اصل سوالت همین بود. اگر حدس من درست باشه خب پاسخ سادست. در کد نمونه زیر (که مربوط به بخش سرچ صفحه admin هست)[/rtl]


<?php $form=$this->beginWidget('CActiveForm', array(

	'action'=>Yii::app()->createUrl($this->route),

	'method'=>'get',

)); ?>

[rtl]بجای ‎$this->route هر آدرس controller/action که دوست داری بنویس و البته کدهای مربوطه action رو هم به مقصد جدید کپی پست کن.

منظورت همین بود؟

[/rtl] [/font]

[font="Tahoma"][right]

ممنون دوست عزیز ، بله دقیقا منظورم همین بود و نمی تونستم جایی رو پیدا کنم که مقدار رو به یک صفحه ی دیگر ارسال کنه ، دقیقا دنبال همین

$this->route

می گشتم ، تشکر از راهنمایی شما[/right][/font]

[rtl][font="Tahoma"]خواهش میکنم.

خوشحالم که مشکلتون حل شد.[/font][/rtl]