برگزیده های پرشین تولز

مراجع AJAX

hidensoft

کاربر تازه وارد
تاریخ عضویت
5 ژانویه 2007
نوشته‌ها
54
لایک‌ها
0
چقدر در مورد این آژاکس بحث کردیم
vahid4134 خوشحال شدم اینجا دیدمت
فقط می خواستم بگم
از ای جکس در جاهایی استفاده کنید که لازمه نه هرجایی
مثلا اون دوستمون که توی سایتش در قسمت جست و جو استفاده کرده بود . ولی یادتون باشه که این روش باعث عدم Bookmark شدن Page می شه و مطمئنا مشکلاتی برای شما در متورهای جستوجو ایجاد می کنه.
سایت های تمام ای جکس ننویسید .اکثر متور های جستو جو با ای جکس مشکل دارند.
حدود 13 سال از بوجود آمدن PHP میگذره و با وجود این همه سایت های امنیتی برای PHP (به طور مثال phpsec.org) باز هم شاهد هک شدن سایت های PHP هستیم. زمان حضور ای جکس در وب به نصف PHP هم نرسیده ... بهتره از ای جکس در جاهایی استفاده کنید که مشکل امنیتی نداشته باشه .

این نتیجه ای بود که بعد از 1 ماه تحقیق درباره ای جکس بدست آوردم و در اختیار شما قرار دادم.
بازم حالا خودانید

موفق باشید
 

wolfskin

کاربر تازه وارد
تاریخ عضویت
29 ژوئن 2004
نوشته‌ها
107
لایک‌ها
1
سن
38
محل سکونت
تهران
چقدر در مورد این آژاکس بحث کردیم
vahid4134 خوشحال شدم اینجا دیدمت
فقط می خواستم بگم
از ای جکس در جاهایی استفاده کنید که لازمه نه هرجایی
مثلا اون دوستمون که توی سایتش در قسمت جست و جو استفاده کرده بود . ولی یادتون باشه که این روش باعث عدم Bookmark شدن Page می شه و مطمئنا مشکلاتی برای شما در متورهای جستوجو ایجاد می کنه.
سایت های تمام ای جکس ننویسید .اکثر متور های جستو جو با ای جکس مشکل دارند.
حدود 13 سال از بوجود آمدن PHP میگذره و با وجود این همه سایت های امنیتی برای PHP (به طور مثال phpsec.org) باز هم شاهد هک شدن سایت های PHP هستیم. زمان حضور ای جکس در وب به نصف PHP هم نرسیده ... بهتره از ای جکس در جاهایی استفاده کنید که مشکل امنیتی نداشته باشه .

این نتیجه ای بود که بعد از 1 ماه تحقیق درباره ای جکس بدست آوردم و در اختیار شما قرار دادم.
بازم حالا خودانید

موفق باشید

سلام.

با وجود احترامي كه براي نظرات شما قائل هستم، اما بايد بگم با بعضي هاش مخالفم.
بدون شك يك برنامه نويس حرفه اي سايتش رو Full Ajax نمي نويسه. چون ممكنه كسي جاوا اسكريپت رو غير فعال كرده باشه، در اين صورت اگر سايت Full Ajax طراحي شده باشه اون شخص نميتونه مطالب رو ببينه. بنابراين يك برنامه نويس حرفه اي همواره يك نسخه معمولي از سايت كه سازگار با نسخه‌ي Full Ajax هست طراحي مي كنه و در اين صورت همه مي تونن از سايت استفاده كنند (چه كساني كه جاوا اسكريپت دارند و چه كساني كه ندارند)

index نشدن سايت هاي Full Ajax در موتور هاي جستجو هم راه حل بسيار ساده اي داره. ساختن يك Site Map كه با نسخه معمولي سايت سازگاري داره و معرفي اين Site Map به موتورهاي جستجو.

Bookmark كردن صفحات هم هيچ كاري نداره. هر كسي كه جاوا اسكريپت بلد باشه با دستورات كاملا ابتداي مي تونه توي سايت يه دكمه قرار بده برا Bookmark كردن صفحات. بنابر اين اين دكمه به راحتي مي تونه آدرس هر مطلبي كه توسط Ajax نمايش داده ميشه رو با لينك به نسخه معمولي اون صفحه (كه البته سازگار با Ajax هست) Bookmark كنه.

اما در مورد مشكلات امنيتي اطلاعات زيادي ندارم. ميشه يه كم بيشتر توضيح بدين.

ممنون. موفق باشيد.
 

hidensoft

کاربر تازه وارد
تاریخ عضویت
5 ژانویه 2007
نوشته‌ها
54
لایک‌ها
0
با وجود احترامي كه براي نظرات شما قائل هستم، اما بايد بگم با بعضي هاش مخالفم.
من هم برای شما و نظرات شما و هرکس دیگه ای احترام قائل هستم دوست من.
AJAX می تونه باعث پیشرفت ولی می تونه باعث بروز نا امنی و ... بشه.
AJAX یک تکنولوژی سمت سرویس گیرنده هست (تمامی پردازش ها بر روی کامپیوتر کاربر انجام می شه) و این یک عیب نیست ولی در اثر استفاده غلط می تونه شما رو تو درد سر بندازه .
متاسفانه بعضی از برنامه نویسان اقدام به نوشتن کنترل پنل مدیریت Full AJAX می کنند و این می تونه کار رو برای هکر ها ساده تر کنه. به چند تا دلیل. اولا کاربر دسترسی به سورس داره. دوما راهت تر می تونه برنامه رو صاحب بشه. سوما در صورت استفاده کردن دستورات بی خود و صرفا برای زیبا کردن سایت (تکان دادن فرم روی وب) می تونه Usage CPU کامپیوتر کاربر رو به مرز 70 و 80 برسونه که فشاری در حدود برنامه های سنگینی چون photoshop و ... به پردازنده وارد می کنه که می توه باعث از کارافتادن کامپیوتر کاربر بشه و............... موارد دیگه که من یادم نیست حالا

Bookmark كردن صفحات هم هيچ كاري نداره. هر كسي كه جاوا اسكريپت بلد باشه با دستورات كاملا ابتداي مي تونه توي سايت يه دكمه قرار بده برا Bookmark كردن صفحات. بنابر اين اين دكمه به راحتي مي تونه آدرس هر مطلبي كه توسط Ajax نمايش داده ميشه رو با لينك به نسخه معمولي اون صفحه (كه البته سازگار با Ajax هست) Bookmark كنه.
امکان داره یه کد یا یه سایت برای نمونه به من نشون بدید ؟
من تمام سعی خودم رو کردم اما نشد.
شاید شما منظور منو درست متوجه نشدید
وقتی شما با استفاده از AJAX صفحات دیگه ای رو بدون تغییر url لود می کنید .. آیا صفحات Bookmark می شوند ؟
index نشدن سايت هاي Full Ajax در موتور هاي جستجو هم راه حل بسيار ساده اي داره. ساختن يك Site Map كه با نسخه معمولي سايت سازگاري داره و معرفي اين Site Map به موتورهاي جستجو.
Site Map می تونه باعث راحت تر شدن کار موتور های جست و تاثیر چندانی بر روی سایت هایی که به همون ترتیبی که گفتم صفحات رو لود می کنند نداره !

شما توی صحبت هاتون نام برنامه نویس حرفه ای رو میارید ولی تا اونجایی که از اسم تاپیک و نحوه عملکردش معلومه برای کاربران غیر حرفه ای هست. و این توضیحات صرفا برای کسانی بود که با آژاکس آشنایی ندارند.

سوال دیگه ای بود در خدمتیم.
 

wolfskin

کاربر تازه وارد
تاریخ عضویت
29 ژوئن 2004
نوشته‌ها
107
لایک‌ها
1
سن
38
محل سکونت
تهران
من هم برای شما و نظرات شما و هرکس دیگه ای احترام قائل هستم دوست من.
ممنون
AJAX می تونه باعث پیشرفت ولی می تونه باعث بروز نا امنی و ... بشه.
كاملا درسته. ولي در صورتي باعث بروز نا امني ميشه كه برنامه نويس به كار خودش وارد نباشه.
AJAX یک تکنولوژی سمت سرویس گیرنده هست (تمامی پردازش ها بر روی کامپیوتر کاربر انجام می شه) و این یک عیب نیست ولی در اثر استفاده غلط می تونه شما رو تو درد سر بندازه .
اما نكته قابل توجه اين هست كه « تمامی پردازش ها بر روی کامپیوتر کاربر انجام نمی شه » . اي جكس فقط يك لايه بين Client و Server ايجاد مي كنه. پردازش ها توسط Server به AJAX انتقال داده ميشه و AJAX فقط وظيفه داره تا نتايج رو به Client نمايش بده.
متاسفانه بعضی از برنامه نویسان اقدام به نوشتن کنترل پنل مدیریت Full AJAX می کنند و این می تونه کار رو برای هکر ها ساده تر کنه.
سيستم اي ميل گوگل (Gmail) و سيستم ايميل ياهو Full AJAX هستند. بدون شك داراي مشكلات امنيتي بوده اند. اما اين مشكلات امنيتي به خاطر استفاده از AJAX نبوده. به خاطر برنامه نويسيه اشتباه بوده. شما اگر يك سايت رو بدون استفاده از فن آوري AJAX بسازي باز هم ممكن هست در برنامه نويسي اشتباه كني و اين اشتباه باعث بروز برخي مشكلات امنيتي بشه. همچنين اگر سايتي رو با فن آوري AJAX بسازي و در برنامه نويسي اشتباه كني باز هم ممكنه اين اشتباه باعث بروز مشكلات امنيتي بشه.

در حقيقت استفاده از AJAX باعث بروز مشكلات امنيتي نميشه بلكه اشتباه در برنامه نويسي باعث بروز مشكلات امنيتي ميشه.

اگر AJAX باعث بروز نا امني ميشد تا الان سيستم ايميل گوگل و ياهو صد ها بار هك شده بودند.
به چند تا دلیل. اولا کاربر دسترسی به سورس داره.
با استفاده از فن آوري AJAX كاربر به هيچ وجه قابليت دسترسي به Sorce Code سايت را نخواهد داشت (مگر اينكه در برنامه نويسي اشتباهي شده باشد).
كاربر تنها به كدهاي AJAX دسترسي خواهد داشت. كه اين مسئله هم چندان مهم نيست. چون هر برنامه نويسي مي دونه كدهاي AJAX بايد بر روي Client قرار بگيره تا اجرا بشه. و اين فقط و فقط مختص AJAX نيست. بقيه كدهاي HTML و JavaScript هم كه مربوط به AJAX نمي شوند توسط Client قابل دسترسي هستند و اصلا اگر غير از اين باشد دنياي Web و Browser ها معنا پيدا نمي كنند.
دوما راهت تر می تونه برنامه رو صاحب بشه.
متوجه منظورتون از اين جمله نشدم. اگر منظورتون اينه كه كد هاي مربوط به AJAX رو راحت تر صاحب ميشه كه بايد بگم دسترسي به اين كدها همونطور كه گفتم يك مسئله طبيعي هست و در صورتي كه اين كدها در اختيار Browser يا كاربر قرار نگيره كه كسي نمي تونه مطلبي رو در اينترنت ببينه.
اما اگر منظورتون اين هست كه برنامه و كدهاي اصلي كه بر روي سرور قرار داره رو مي تونه صاحب بشه كه بايد بگم اگر در برنامه نويسي AJAX اشتباهي صورت نگرفته باشه انجام چنين كاري (به غير از هك كردن سرور) غير ممكنه.
مثلا شما الان مي توني به راحتي كدها و برنامه اصلي Gmail رو صاحب بشي؟
سوما در صورت استفاده کردن دستورات بی خود و صرفا برای زیبا کردن سایت (تکان دادن فرم روی وب) می تونه Usage CPU کامپیوتر کاربر رو به مرز 70 و 80 برسونه که فشاری در حدود برنامه های سنگینی چون photoshop و ... به پردازنده وارد می کنه که می توه باعث از کارافتادن کامپیوتر کاربر بشه
چنين اتفاقي در زماني رخ ميده كه Browser شما Bug داشته باشه يا يك Browser غير استاندارد و بدرد نخور باشه.
مسائلي كه شما مطرح كرديد هيچ ربطي به فن آوري AJAX نداره و فقط به برنامه نويسيه DHTML مربوط ميشه.
DHTML هم يك فن آوري هست كه همونطور كه در اسمش نهفته هست وظيفه ي Dynamic كردن صفحات وب رو به عهده داره. مثلا در ميان لينك هايي كه در بالاي همين سايت قرار داده شده لينكي هست به نام « جستجو » كه در صورتي كه بر روش كليك كنيد يك منو باز ميشه. ايجاد چنين منويي توسط فن آوري DHTML صورت مي گيره و براي زيبا كردن و پويا ساختن سايت ها به كار ميره. بعيد ميدونم كسي وقتي رو اين دكمه كليك مي كنه سيستمش هنگ كنه. حتي اگر صدها لينك ديگه مثل همين لينك با منو هاي سنگين تر و بيشتر هم توي يك صفحه قرار بگيرند كامپيوتر هنگ نمي كنه.
امکان داره یه کد یا یه سایت برای نمونه به من نشون بدید ؟
من تمام سعی خودم رو کردم اما نشد.
شاید شما منظور منو درست متوجه نشدید
وقتی شما با استفاده از AJAX صفحات دیگه ای رو بدون تغییر url لود می کنید .. آیا صفحات Bookmark می شوند ؟

دوست عزيز من منظور شما رو دقيقا متوجه شدم. فكر مي كنم شما منظور من رو متوجه نشديد. براتون واضح تر توضيح ميدم :

من گفتم يك برنامه نويس حرفه اي اگر بخواهد از AJAX استفاده كند ، هميشه يك نسخه بدون نياز به AJAX هم درست مي كند. يعني سايت داراي 2 نسخه هست :

1. نسخه بدون AJAX
2. نسخه داراي AJAX

در نسخه شماره 1 هر صفحه كه نمايش داده ميشه داراي يك URL خاص هست.
در نسخه شماره 2 هر مطلب كه نمايش داده ميشه داراي يك صفحه خاص در نسخه شماره 1 هست.

اگر فرض كنيم كه URL يك صفحه در نسخه شماره 1 برابر با http://yourdomain/22/page.php باشد و در نسخه 2 هم ما همين مطالب موجود در اين صفحه را به كاربر نمايش مي ديم بنابر اين با ايجاد يك دكمه و ربط دادن اون به تابع زير مي تونيم اون مطلب رو Bookmark كنيم :
HTML:
<script language="JavaScript" type="Text/Javascript">
var urlAddress = "http://yourdomain/22/page.php";
var pageName = "Your Description For Page";
function addToFavorites() {
    if (window.external) { 
        window.external.AddFavorite(urlAddress,pageName) 
    } else {
        alert("Sorry! Your browser doesn't support this function."); 
    }
}
</script>

Site Map می تونه باعث راحت تر شدن کار موتور های جست و تاثیر چندانی بر روی سایت هایی که به همون ترتیبی که گفتم صفحات رو لود می کنند نداره !
در اين مورد هم شما منظور من رو متوجه نشديد. موتور هاي جستجو با URL هاي حقيقي ارتباط بر قرار مي كنند نه URL هاي مجازي. نسخه ي شمار 1 از سايت داراي URL هاي حقيقي هست. بنابر اين با ايجاد يك Site Map ميشه URL هاي حقيقي رو به موتورهاي جستجوگر گزارش داد.

شما توی صحبت هاتون نام برنامه نویس حرفه ای رو میارید ولی تا اونجایی که از اسم تاپیک و نحوه عملکردش معلومه برای کاربران غیر حرفه ای هست. و این توضیحات صرفا برای کسانی بود که با آژاکس آشنایی ندارند.

اسم اين تاپيك مراجع AJAX هست. حتي حرفه اي ترين برنامه نويسان هم خيلي از مطالب رو نمي دونن.

موفق باشيد
 

hidensoft

کاربر تازه وارد
تاریخ عضویت
5 ژانویه 2007
نوشته‌ها
54
لایک‌ها
0
خیلی خوبه که شما اینقدر به مسائل توجه می کنی.
متاسفانه خیلی وقتم کم شده. دارو روی پروژه کار می کنم . البته توی این پروژه هم قراره آژاکس کار بشه.

مثل اینکه یه سوء تفاهم پیش اومد. من نگفتم از ای جکس استفاده نکنید . می گم درست استفاده کنید (شعار صرفه جویی :D) .
(مگر اينكه در برنامه نويسي اشتباهي شده باشد)
منم میگم مواظب این اشتباهات باشید.
دوست عزيز من منظور شما رو دقيقا متوجه شدم. فكر مي كنم شما منظور من رو متوجه نشديد.
:D:D
1. نسخه بدون AJAX
2. نسخه داراي AJAX
اگه این کارو انجام بدید خیلی خوبه

نين اتفاقي در زماني رخ ميده كه Browser شما Bug داشته باشه يا يك Browser غير استاندارد و بدرد نخور باشه.
مثل اینکه بازم متوجه منظور همدیگه نشدیم.
ببین خودت برو یاهو میل بتا رو باز کن ببین چقدر CPU Usage میاد بالا.
منظور من این منویی که با استفاده از DHTML باز می شه نبود. منظور من تکان دادن فرم روی Web با AJAX


در هر صورت از بحث با شما لذت بردم. بقیه موارد که گفتم هم اگه مسائل امنیتی رعایت بشه هیچ مشکلی ندارند.
در ضمن GMAIL تمام AJAX نیست. Yahoo Mail Beta تمام آژاکس هست.


موفق باشید
 

parvaneh_s

کاربر تازه وارد
تاریخ عضویت
29 جولای 2006
نوشته‌ها
18
لایک‌ها
0
یه مقاله ساده و راحت و فارسی برای کسایی که یه مقاله واسه شروع آجاکس میخوان:
http://www.iranphp.net/articles/aplications/Articles026.pdf
منم خودم از روی این مقاله راه افتادم.
بهتر نیست مثال به مثال شروع کنیم تا همه بتونن راحت تر یاد بگیرن؟​
 

firebird

Registered User
تاریخ عضویت
2 جولای 2005
نوشته‌ها
1,424
لایک‌ها
10
سن
46
من دیروز قرارداد کتاب آژاکس رو بستم. فکر میکنم تا ماه دیگه چاپ بشه.
 

p123

کاربر تازه وارد
تاریخ عضویت
15 نوامبر 2008
نوشته‌ها
5
لایک‌ها
0
من هم برای شما و نظرات شما و هرکس دیگه ای احترام قائل هستم دوست من.
AJAX می تونه باعث پیشرفت ولی می تونه باعث بروز نا امنی و ... بشه.
AJAX یک تکنولوژی سمت سرویس گیرنده هست (تمامی پردازش ها بر روی کامپیوتر کاربر انجام می شه) و این یک عیب نیست ولی در اثر استفاده غلط می تونه شما رو تو درد سر بندازه .
متاسفانه بعضی از برنامه نویسان اقدام به نوشتن کنترل پنل مدیریت Full AJAX می کنند و این می تونه کار رو برای هکر ها ساده تر کنه. به چند تا دلیل. اولا کاربر دسترسی به سورس داره. دوما راهت تر می تونه برنامه رو صاحب بشه. سوما در صورت استفاده کردن دستورات بی خود و صرفا برای زیبا کردن سایت (تکان دادن فرم روی وب) می تونه Usage CPU کامپیوتر کاربر رو به مرز 70 و 80 برسونه که فشاری در حدود برنامه های سنگینی چون photoshop و ... به پردازنده وارد می کنه که می توه باعث از کارافتادن کامپیوتر کاربر بشه و............... موارد دیگه که من یادم نیست حالا


امکان داره یه کد یا یه سایت برای نمونه به من نشون بدید ؟
من تمام سعی خودم رو کردم اما نشد.
شاید شما منظور منو درست متوجه نشدید
وقتی شما با استفاده از AJAX صفحات دیگه ای رو بدون تغییر url لود می کنید .. آیا صفحات Bookmark می شوند ؟

Site Map می تونه باعث راحت تر شدن کار موتور های جست و تاثیر چندانی بر روی سایت هایی که به همون ترتیبی که گفتم صفحات رو لود می کنند نداره !

شما توی صحبت هاتون نام برنامه نویس حرفه ای رو میارید ولی تا اونجایی که از اسم تاپیک و نحوه عملکردش معلومه برای کاربران غیر حرفه ای هست. و این توضیحات صرفا برای کسانی بود که با آژاکس آشنایی ندارند.

سوال دیگه ای بود در خدمتیم.



بابا این دیگه چه جور فشنیه بیا ببین[size=18pt][/size]
http://www.mj-shop.ir ;) ;) ;)
 

firebird

Registered User
تاریخ عضویت
2 جولای 2005
نوشته‌ها
1,424
لایک‌ها
10
سن
46
حیف این فوروم که جولانگاه اسپمرها شده.
 

tviran

Registered User
تاریخ عضویت
4 مارس 2010
نوشته‌ها
102
لایک‌ها
4
مطاااااااااالب خیلی جااااااااااالب بودن از همه ممنونم
 

egit

کاربر تازه وارد
تاریخ عضویت
12 فوریه 2006
نوشته‌ها
21
لایک‌ها
0
مرسی دستت درد نکنه
 

web developer

کاربر تازه وارد
تاریخ عضویت
7 مارس 2012
نوشته‌ها
9
لایک‌ها
0
مقدمه:امروزه در دنياي وب، ديگر جايي براي صفحات ايستا باقي نمانده است و تمامي توسعه دهندگان وب در حال حرکت بسوي واسط هايي پويا هستند که حداکثر تعامل ممکن را با کاربران خود داشته باشد.يکي از دستاوردهايي که در اين زمينه کسب شده و تحولي عظيم را در برنامه هاي مبتني بر وب ايجاد نموده، تکنولوژي Ajax است که تاکنون راهکار هاي متعددي براي آن از قبيل YUI Library، jQuery و knockout ارائه شده است.اما يکي از مشکلاتي که برخي از برنامه نويسان تازه کار در اين زمينه با آن روبرو هستند اين است که هنگام پياده سازي اين قابليت با الگوهايي نظير MVC دچار سر درگمي مي گردند.در اين مقاله برآنيم تا با ارائه مثالي روش بکارگيري Ajax را در مدل MVC و با استفاده از چهارچوب کاري Yii به شما دوستان عزيزم در همکدي نشان دهم.
پیشنیاز ها:
در اين مقاله فرض بر اين است که شما با مدل MVC، کتابخانه Jquery، زبان PHP و نيز Yii تا حدودي آشنايي داريد.

سناريو:
در اين مقاله قصد داريم از طريق فرمي بنام form.php نام و نام خانوادگي فرد را گرفته و سپس آنها را در پايگاه داده ها ذخيره کرده و پيغامي مناسب را به وي نمايش دهيم.

جریان کاری:
جريان عمومي در مدل MVC به اين شکل است که فرم را در نمايي(view) به همين نام(form.php) ايجاد مي کنيم.سپس با وارد کردن داده در فيلد هاي فرم مورد نظر و فشردن کليد ذخيره تقاضا را به کنترول کننده مورد نظر مي فرستيم.سپس از طريق کنترول کننده مدلي را براي انجام عمليات پایگاه داده ايجاد نموده و پس از انجام عمليات بر روي پايگاه داده با فراخواني متد Render نمايي را به کاربر نمايش مي دهيم. حالا مي خواهيم اين روال را بصورتي انجام دهيم که ديگر کاربر براي انجام آن نيازي به بارگيري مجدد صفحه نداشته باشد.براي اينکار ما از کتابخانه jQuery بهره مي گيريم که زيرساخت لازم براي ارسال داده بصورت Ajax را برايمان فراهم می نمايد.

ایجاد مدل:
اولين قدم در پياده سازي اين پروسه داشتن يک مدل داده ايست که بتوانيم بر اساس آن اطلاعات فرم را دريافت نماييم.فرض مي کنيم مدل ما مشخصات مربوط به يک فرد را در خود دارد که اين اطلاعات در جدولي بنام persons ذخيره شده اند .اين مشخصات شامل نام، نام خانوادگي و کد ملي مي باشند.براي تعريف مدل کلاسي را با نام Person در پوشه مربوط به مدل ها(Models) ايجاد کرده و از آنجايي که اين اطلاعات در پايگاه داده ها ذخيره شدند آن را از نوع CActiveRecord تعريف مي کنيم. توضيحات بيشتر در رابطه با مدل ها به مستندات آشنايي با مدل ها در Yii بروييد.

class Person extends CActiveRecord{
public static function model($className=__CLASS__) { return parent::model($className); } public function tableName() { return 'tbl_persons'; }}
ایجاد نما:
پس از داشتن یک مدل داده ای زمینه برای ایجاد فرمی برای دریافت اطلاعات فرد فراهم می شود.گام بعدی ما این است که در پوشه مربوط به نماها(views) فایلی بنام form.php ایجاد کنیم و در داخل آن فرمی که شامل فیلدی برای دریافت نام و نام خانوادگی و کلیدی برای ارسال تقاضا است اضافه نماییم.در زیر نمونه فرم ما را می بینید.


<div class="form"><?php $form=$this->beginWidget('CActiveForm', array('id'=>'hamcodi-form','enableAjaxValidation'=>false,)); ?><p class="note">لطفا فيلد هاي<span class="required">ستاره دار</span>پر نماييد</p><?php echo $form->errorSummary($model); ?><div class="row"><?php echo $form->labelEx($model,'firstname'); ?><?php echo $form->textField($model,'firstname',array('id'=>'firstname','size'=>50,'maxlength'=>50)); ?><?php echo $form->error($model,'firstname'); ?></div><div class="row"><?php echo $form->labelEx($model,'lastname'); ?><?php echo $form->textField($model,'lastname',array('id'=>'lastname','size'=>50,'maxlength'=>10)); ?><?php echo $form->error($model,'lastname'); ?></div><div class="row buttons"><?php echo CHtml::submitButton('ذخيره شود'); ?></div><?php $this->endWidget(); ?></div><!-- form -->

همانطور که در کد بالا مشاهده می کنید ما از CActiveForm برای ایجاد فرممان بهره می بریم.بمنظور در یافت نام و نام خانوادگی کاربر فیلدی متنی را که به خاصیت های firstname و lastname مدلمان مرتبط می باشد را در آن ایجاد می کنیم.برای توضیحات در رابطه کار با فرم ها می توانید به مستندات Yii در این باره مراجعه نمایید.

آماده سازی کنترول کننده:
تا اینجا ما فرمی خام و یک مدل داده ای برای کار با پایگاه داده داریم.حال نیاز به کنترول کننده ای است که پس از فشردن کلید ذخیره روال مناسبی را به جریان بیاندازد.به پوشه Controllers از برنامه می رویم و کنترول کننده ای با نام HamcodiController.php را ایجاد می کنیم.در داخل آن نیاز داریم کنشی(action) را برای انجام عمل درج ایجاد نماییم.نام آن را insert می گذاریم.در این کنش در صورت معتبر بودن داده های دریافتی آنها را در پایگاه داده ذخیره کرده و نمایی را بنام view.php که شامل پیغامی برای کاربر مبنی بر درج فرد مورد نظر است نمایش می دهیم. در زیر نمایی از کنترول کننده مورد نظرمان را می بینید.


CController { public function actionInsert() { $model = new Person; if (isset($_POST['Person'])) { $model->firstname = $_POST['firstname']; $model->firstname = $_POST['lastname']; if ($model->save()) $this->renderpartial('view',array('view', 'id' => $model->id)); } $this->render('form', array( 'model' => $model, )); }حالا بسراغ نمای view.php می رویم تا پیغامی را برای کاربر نمایش دهیم.در این نما می خواهیم شناسه فرد درج شده را بهمراه پیغامی نمایش دهیم.


<div> عمليات درج با موفقيت انجام گرفت.شناسه فرد مورد نظر <b><?php echo $id; ?></b> ميباشد. </div>

ارسال داده از طریق ajax:

خوب تا اینجا زیر ساخت لازم برای عملیات درج را ایجاد نمودیم.حال می توان این روال را با استفاد از ajaxانجام داد.برای اینکار ابتدا باید کتابخانه jQuery را به نمای form.php اضافه کنیم.می خواهیم با استفاده از متد $post داده ها را به کنترول کننده ارسال نماییم.برای اینکار ابتدا تغییر کوچکی در کلید فرممان می دهیم و نوع آن را به یک کلید معمولی (نه کلید submit) تغییر می دهیم.


<?php echo CHtml::button('ذخيره شود', array('onclick' => 'sendAjaxRequest()')); ?>در این فرم همچنین div ای برای نمایش و رندر کردن پیغام مربوط به درج را اضافه می کنیم.


<div id=”message”></div>

توجه کنید که در کد بالا گرداننده ای را برای رویداد onclick تعریف کردیم.این همان گرداننده ای است که تقاضای ما را از طریق ajax به کنترول کننده مربوط خواهد فرستاد.حالا تنها کاری که باقی مانده است گرفتن مقادیر ورودی ها و ارسال آنها با استفاده از $post می باشد.متد زیر در جاوا اسکریپ این کار را برای ما انجام می دهد.



function sendAjaxRequest(){ var firstname = $('#firstname').val(); var lastname = $('#lastname').val(); $.post('/hamcodi/insert' , {'firstname':firstname,'lastname':lastname},function(data){ $("#message").html(data); });}

به این ترتیب کار ما دیگر تمام است.حالا با فشردن کلید ذخیره نام و نام خانوادگی از طریق متد $post به کنترول کننده ارسال می شود.در صورت عدم وقوع خطا در عملیات نمای مورد نظر ما که همان فایلview.php می باشد به تابع ajax ما باز گردانده شده و از طریق پارامتر data در متد callback قابل دریافت می باشد.ما این پارامتر را توسط متد html() که معادل innerHTML می باشد در Div مورد نظر چاپ می کنیم.

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

منبع: همکدی
 

web developer

کاربر تازه وارد
تاریخ عضویت
7 مارس 2012
نوشته‌ها
9
لایک‌ها
0
ببخشید اینجا امکان استایل دادن به مقاله نیست؟
من نتونستم این مقاله رو استایل بدم....
 

farazsys

کاربر تازه وارد
تاریخ عضویت
7 آپریل 2013
نوشته‌ها
3
لایک‌ها
0
برای شروع یادگیری Ajax ابتدا باید بدانید که کار کردن با Ajax بسیار ساده است.
برای شروع ابتدا باید javascript یاد بگیرید. جاوااسکریپت برنامه نویسی سمت کلاینته که می تواند یکسری اطلاعات را به هر صورتی به سمت سرور منتقل کند.
برای ارسال اطلاعات بهترین گزینه استفاده از نوع داده JSON می باشد.
بهترین framework برای کار کردن هم JQuery هست.
تو اینترنت مثال برای یاد گیری Ajax بسیار زیاد است که به نظر من از همه بهتر همون سایت JQuery.
برای اطلات بیشتر می توانید به بخش مقالات سایت http://www.farazsys.ir مراجعه نمایید.
 

farazsys

کاربر تازه وارد
تاریخ عضویت
7 آپریل 2013
نوشته‌ها
3
لایک‌ها
0
برای شروع یادگیری Ajax ابتدا باید بدانید که کار کردن با Ajax بسیار ساده است.
برای شروع ابتدا باید javascript یاد بگیرید. جاوااسکریپت برنامه نویسی سمت کلاینته که می تواند یکسری اطلاعات را به هر صورتی به سمت سرور منتقل کند.
برای ارسال اطلاعات بهترین گزینه استفاده از نوع داده JSON می باشد.
بهترین framework برای کار کردن هم JQuery هست.
تو اینترنت مثال برای یاد گیری Ajax بسیار زیاد است که به نظر من از همه بهتر همون سایت JQuery.
برای اطلات بیشتر می توانید به بخش مقالات سایت فراز سیستم مجری طراحی سایت مراجعه نمایید.

فراز سیستم مجری طراحی سایت
 

pouyaweb7

کاربر تازه وارد
تاریخ عضویت
16 دسامبر 2012
نوشته‌ها
62
لایک‌ها
7
بالا