سلام دوستان
می خواستم اگه موافقید واسه علاقمندان ajax شروع کنیم به آموزش طراحی یه وب سایت پویا از ابتدا تا سطح حرفه ای بوسیله ajax البته اگه عمری باقی بود. دوستان لطفا نظراتشون رو بدن.
ممنون - موفق باشید.
سلام دوستان
می خواستم اگه موافقید واسه علاقمندان ajax شروع کنیم به آموزش طراحی یه وب سایت پویا از ابتدا تا سطح حرفه ای بوسیله ajax البته اگه عمری باقی بود. دوستان لطفا نظراتشون رو بدن.
ممنون - موفق باشید.
سلام
كار خوبيه
واسه ما مبتديا خوبه
اميدوارم موفق باشي
اختیار دارین آقا بهرام - ما انگشت کوچولوی شما هم نمی شیم.
مرسی در هر صورت
موفق باشین - ببینیم نظر بقیه چیه - اگه ok بود شروع می کنیم انشاءالله
اگه اینکارا بکنی واقعا باحالی
کاره بسیار خوبیه
موافقم
به خاطر دل بزرگت برایتان ارزوی موفقیتهای بزرگتر را داریم
سلام
موافقم.عالیه
خوب چراکه نه ولی فکر نمی کنی تو همین وبگاه هم در این مورد بحث شده است.
دوست خوبم اگه بقیه موافق باشند.شما که هم در asp و هم php دستی داری.ای جکس را از این جهت نگاه کن:نحوه ارتباط به وسیله webservice در ajax
پیروز باشی
فقط امیدوارم در ابتدا روش درست استفاده از ajax هم یادآوری شود
(فکر نمی کنم ajax بیشتر از سه چهار تا پست نیاز به آموزش داشته باشه)
بنام خدا – جلسه اول - XMLHttpRequest
AJAX یه اسم خیلی جذاب واسه یه نوع برنامه نویسیه که از سال 2005 به بعد مورد توجه بیشتری قرار گرفت و استفاده کردن سایتهایی مثل google و یه چند تا دیگه، به محبوبیت اون اضافه کرد.
AJAX در حقیقت چیزی نیست جز ترکیب نامتقارن Javascript و XML یعنی همون Asynchronous Javascript and XML که البته مردم مثل خیلی چیزهای دیگه که دوست دارن مخفف اون رو به کار ببرند این ترکیب نامتقارن رو به صورت مخفف AJAX به کار می برند.
وقتی Javascript انتشار پیدا کرد مردم خیلی کار کردن با اون رو دوست داشتن علت هم این بود که خیلی محیط رو براشون کاربر- پسند یا همون user friendly می کرد مثل اعتبار سنجی فرم ها، پنجره های pop-up و ... البته این علاقه زیاد مردم علیرغم عدم امکان ارسال اطلاعات بین سرور و کلاینت توسط Javascript بود.
خب حالا ببینیم چرا تکنولوژی AJAX بوجود اومد؟ وقتی ما می خوایم یه سری اطلاعات رو از DB بخونیم و یا سری اطلاعات رو به سمت سرور بفرستیم باید از یه زبون برنامه نویسی تحت وب مثل php استفاده کنیم و یه فرم طراحی کنیم که اونم با متدهای GET و یا POST مقداردهی شده و روی دکمه submit کلیک کنیم تا عمل مورد نظر اتفاق بیفته. خب حالا باید منتظر باشیم تا یه صفحه جدید باز بشه و نتایج عمل مورد نظر ما رو به ما نمایش بده. خب فکر می کنم هیچ کدوم از ما حاضر نباشه واسه این عمل مدت زمان زیادی رو صرف کنه! یعنی منتظر بشه تا صفحه refresh بشه و نتیجه رو ببینه که در حقیقت این صفحه نتیجه عکس العمل سرور نسبت به عمل درخواستی ماست.
AJAX در این قسمت وارد عمل می شه و مثل یه دارو مشکل ما حل می کنه. یعنی اجازه می ده کدهای javascript مستقیماً با سرور ارتباط برقرار کنن که البته این عمل رو با استفاده از یه object به اسم XMLHttpRequest انجام می ده. توسط این Object می شه اطلاعات رو از سرور مستقیما دریافت کرد بدون اینکه نیاز باشه تا صفحه جدیدی Load بشه.
با اجازه اساتید گرامی خودم در سایت barnamenevis - من تصمیم دارم تا قبل از اینکه به طراحی وب سایت پویای مورد بحث خودمون بپردازم یه چند تا تمرین کوچولو با هم انجام بدیم چون برنامه نویسان AJAX پیشنهاد می کنن که کسانی که می خوان این تکنولوژی رو شروع کنن باید با HTML و Javascript کاملا آشنا باشن. اما ما چون ما می خوایم در کوتاهترین زمان بیشترین و کاربردی ترین مطالب رو یاد بگیریم بد نیست چند تا تمرین با هم حل کنیم. این جوری فکر می کنم کار ساده تر می شه.
تو تمرین اول که همون رو می خوایم گسترشش بدیم سعی داریم تا یاد بگیریم چطور اطلاعات رو به سمت سرور ارسال و دریافت کنیم طوریکه از دکمه submit به مفهوم خودش استفاده نکنیم.
خب تو این قسمت می خوایم یه صفحه به اسم order.html طراحی کنیم که شامل یه فرمه که دو تا فیلد داره.
(فایل تمرینات رو داخل فولدر ضمیمه گذاشتم تا دوستان علاقمند استفاده کنن.)
حتما سئوال اینه که پس دکمه submit این فرم کجاست؟ این همون چیزی که می خوایم در موردش توضیح بدیم چون هیچ نیازی به اون نداریم.
آخرین ویرایش به وسیله yaqubian : یک شنبه 09 تیر 1387 در 12:25 عصر
ما را نه غم دوزخ و نی حرص بهشت است!
www.yaqubian.com
دوستان عزیز با این روش موافقن؟ تا اینجاش خوبه یا نه؟
اگه خوبه ادامه بدم!
مرسی
ما را نه غم دوزخ و نی حرص بهشت است!
www.yaqubian.com
سلام
خيلي خوب توضيح مي دي
دستت درد نكنه
همين جوري به نظر من خوبه
دوستان عزیز قبل از اینکه بخوام فصل دوم رو توضیح بدم جا داره از تمامی دوستانی که اظهار رضایت از این گفتگو کردن تشکر کنم و در ادامه بگم منتظر پیشنهادات و انتقادات تمامی شما هستم و در ضمن هر جا که می بینید کدها جهت چپ به راستشون قابل خوندن نیستن فایل ضمیمه رو نیگاه کنین تو اونجا تکمیل شده فصل هستش. بازم ممنون و مرسی
فصل دوم – Browser Support
در ادامه مطالب قبل می خوام یکی از بزرگترین موانع رو واسه مشتاقان AJAX بگم و اونم بحث Browser Support یا پشتیبانی مرورگرها از AJAX. چه خوب می شد اگه تمام مرورگرها فقط به یه کد javascript واسه پشتیبانی از ajax احتیاج داشتند ولی خب متاسفانه اینطوری نیست!
تو این قسمته که شیء XMLHttpRequest به دردمون می خوره. نیازی نیست خود این شیء رو بشناسیم ولی مهمه که بدونیم چطور این شیء با مرورگرهایی مثل IE ، Opera، Firefox و یا Safari سازگار می شه!
خب می دونیم که اگه تو اجرای یه کد یه Error اتفاق بیفته اجرای برنامه متوقف می شه اما این رو هم می دونیم که با استفاده از تکنیک Try و Catch می شه جلوی این کار رو گرفت. یعنی تمام کد اصلی رو تو بدنه Try می نویسیم و مدیریت استثنائاتی که ممکنه اتفاق بیفتن رو می دیم به قسمت Catch. این قسمت Catch باعث می شه که اگه تو قسمت Try یه خطایی اتفاق بیفته برنامه متوقف نشه و به کار خودش ادامه بده که تو اکثر کتابها فصل try و catch رو به اسم مدیریت استثنائات ازش اسم می برن.
اینم یادمون باشه که اگه بدنه try با موفقیت انجام بشه هیچوقت به قسمت catch نمی ریم. تو این کدی که الان می خوام توضیح بدم می خوام در مورد ایجاد شیء XMLHttpReqest به سه روش توضیح بدم که شما می تونید عملکرد try و catch رو اینجا کامل ببینین.
خوب حالا ببینیم صفحه order.html چه تغییری کرده؟ آره یه قطعه کد javascript رو به قسمت body اضافه می کنیم:
<script language="javascript" type="text/javascript">
<!--
//Browser Support Code
function ajaxFunction(){
var ajaxRequest; // The variable that makes Ajax possible!
try{
// Opera 8.0+, Firefox, Safari
ajaxRequest = new XMLHttpRequest();
} catch (e){
// Internet Explorer Browsers
try{
ajaxRequest = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try{
ajaxRequest = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e){
// Something went wrong
alert("Your browser broke!");
return false;
}
}
}
}
//-->
</script>
توی این قطعه کد javascript که نوشتیم به سه شکل شیء XmlHttpRequest رو سعی کردیم بسازیم.
روش اول:
ajaxRequest = new XMLHttpRequest();
این روش واسه مرورگرهای opera نسخه 8، firefox و Safari بکار می ره. اگر این مرحله Fail بشه از دو روش بعدی واسه IE استفاده می کنیم یعنی:
ajaxRequest = new ActiveXObject("Msxml2.XMLHTTP");
ajaxRequest = new ActiveXObject("Microsoft.XMLHTTP");
و این یادمون باشه که اگه تمام روشهای بالا Fail بشن به این معناست که کاربر از مرورگری داره استفاده می کنه که Ajax رو Support نمی کنه.
تو فصل بعدی قصد داریم بفهمیم چطور با این شیء ساخته شده که الان اون رو داخل متغیر ajaxRequest گذاشتیم با سرور ارتباط برقرار کنیم.
ما را نه غم دوزخ و نی حرص بهشت است!
www.yaqubian.com
فصل سوم – برقراری ارتباط با سرور توسط شیء XMLHttpRequest
قبل از اینکه تابعی بنویسیم که چطور اطلاعات رو به سمت سرور ارسال کنیم بهتره که تو فکر نوشتن یه تابع باشیم که چطور اطلاعات رو از سرور دریافت کنه!
شیء XMLHttpRequest یه Property خاص به اسم onreadystatechange داره که کار اون ذخیره تابعی که عمل پردازش پاسخ از سمت سرور رو انجام می ده.
شیء XMLHttpRequst یه Property دیگه هم به اسم readyState داره که کار اون اینه که وضعیت پاسخ سرور کجا ذخیره می شه؟ یادمون باشه که پاسخی که از سمت سرور بر می گرده می تونه به یکی از سه حالت زیر باشه: 1- در حال پردازش باشه 2- در حال دانلود باشه 3- به انجام برسه و تکمیل بشه. هر بار که این مقدار یعنی readyState تغییر کنه متد onreadystatechange اجرا می شه!
موردی که اینجا ما می خوایم بهش بپردازیم وضعیت سوم یا همون حالت complete پاسخه! واسه همین باید از یه if واسه چک کردن وضعیت تو حالت سوم استفاده کنیم.
نکته مورد توجه اینه که اگه readyState برابر 4 باشه به این معناست که وضعیت به حالت complete و ما می تونیم اطلاعات رو get کنیم.
تو Application های ساده ای که با Ajax نوشته می شن مثل همین تمرینات ما، یکی از روشهای گرفتن پاسخ سرور استفاده از متد responseText .
تو تمرین اولی که ما می خوایم انجام بدیم می خوایم مقدار یه TextBox رو با Time سرور set کنیم. واسه اینکه به مقدار یه input داخل یه فرم بوسیله Javascript دسترسی داشته باشیم از کد زیر استفاده می کنیم:
document.FormName.InputName.value
در اینجا اسم فرم ما myFrom و اسم تکست باکس ما time که اگه بخوایم دستور انتساب رو بنویسیم به شکل زیر در می یاد:
document.myForm.time.value = ajaxRequest.responseText;
خب تا اینجا خیلی کارا کردیم و با خیلی چیزها هم آشنا شدیم. درسته شاید اولش سخت باشه ولی یه چیزی رو تا اینحا فهمیدیم که با Ajax تونستیم بدون اینکه یه Request به سرور بفرستیم یه Response بگیریم.
خب حالا که متد onreadystatechange یه تابع مخصوص واسه response-handling داره نوبت می رسه به ارسال یه Request . این عمل شامل دو تا Step می شه:
1- مشخص کردن URLی که اسکریت سمت سرور ما در اون تعریف شده.
2- استفاده از تابع ارسال واسه غیر فعال کردن ارسال Request
اسم URL مورد نظر رو serverTime.php می ذاریم. خب پس حالا می تونیم مرحله اول رو انجام بدیم. Set کردن این url توسط یه متد به اسم Open صورت می گیره که دومین آرگومان اون از همه بیشتر اهمیت داره، یعنی:
ajaxRequest.open("GET", "serverTime.php", true);
و در ادامه پیاده سازی مورد دوم یعنی:
ajaxRequest.send(null);
بد نیست که بیایم و از یه Attribute واسه input مون هم استفاده کنیم و عملکرد اون رو هم ببینیم مثل:
<input type='text' onChange="ajaxFunction();" name='username' />
ما را نه غم دوزخ و نی حرص بهشت است!
www.yaqubian.com
فصل چهارم – ایجاد فایل servertime.php
متد responseText مربوط به شیء XMLHttpRequest کارش اینه که داده ای که این فایل در Browser نمایش می ده رو داخل خودش ذخیره کنه پس چیزی که ما از این فایل انتظار داریم اینه که باید زمان جاری رو echo کنه!
یعنی:
<?php
Echo date(“H:i:s”);
?>
خب حالا وقتشه که نتیجه کارمون رو ببینیم. واسه تست کردن می تونیم مثلا از easyphp استفاده کنیم. پیشنهاد می کنم که بهتره با نسخه 2.0 اون کار کنین. البته فقط یه پیشنهاده! علت این پیشنهاد هم اینه که نسخه های 1.7 و 1.8 این نرم افزار یه چیزایی رو خطا نمی گیرن که این از قابلیت حمل برنامه ما کم می کنه مثل <? ?> با <?php ?> که دوستان خودشون بهتر می دونن. در ضمن یه برتری دیگه هم این نسخه 2 داره اونم اینه که با اکثر آنتی ویروس ها مشکل نداره ولی تو نسخه های قبلی این یه مشکل بود! خب فایلهامون رو می ذاریم داخل یه پوشه، منظوریم order.html و serverTime.php بعد order.html رو Run می کنیم می بینیم که یه فرم باز می شه که هیچی داخلش نیست اما اگه یه اسم داخل باکس اول وارد کنیم و بعد با Tab یا کلیک به باکس بعدی بریم می بینیم که چه اتفاق جالبی می افته! بله بدون هیچ درخواستی به سمت سرور یه پاسخ از اون دریافت می کنیم!!!
و اتفاق جالبتر اینه که صفحه هم Refresh نمی شه و تمام اتفاقات تو همین یه صفحه می افته! امیدوارم تا اینجا مطالب بدردتون خورده باشه!
ما را نه غم دوزخ و نی حرص بهشت است!
www.yaqubian.com
آقا دستت درد نکنه
ولی یه سوالی برام پیش اومده اونم اینکه چرا برا IE دو مدل فراخوانی استفاده شده؟
باید زمان جاری رو echo کنه یعنی چه.
اگه ممکنه نسخه 2 easyphp را هم بزاین.(اگه حجمش زیاد نیست)
1. یعنی باید زمان جاری را نمایش دهد. echo = print
2.لینک دانلود easyphp 2
http://sourceforge.net/project/showf...group_id=14045
دوست عزیز این سایت اصلی مربوط به easyphp
http://easyphp.org/index.php
و چیزای بدردبخوری توش پیدا می شه
در ضمن واسه دانلودش هم همون لینکی که دوستمون tanha گذاشته درسته.
در مورد جواب سئوالتون باز هم همونطور که دوست خوبمون توضیح داد ما یه چیزی داریم به اسم MSXML HTTP و این لایه های مختلفی داره واسه همین هم ما از دو حالت استفاده می کنیم و همونطور که گفته شد این مربوط به نسخه های مختلف موجوده.
موفق باشید
ما را نه غم دوزخ و نی حرص بهشت است!
www.yaqubian.com
دوست عزیز یه چیزه دیگم یادم اومد
اگه علاقمند بودی مطالب بیشتری در مورد سئوالت یاد بگیری می تونی:
http://msdn.microsoft.com/en-us/library/ms762314.aspx
یا تو گوگل این گزینه رو جستجو کن
difference between Microsoft.XMLHTTP and msxml2
موفق باشید
ما را نه غم دوزخ و نی حرص بهشت است!
www.yaqubian.com
اگر yaqubian اجازه بدن مطالبی رو در مورد روشهای صحیح استفاده از ajax مطرح کنم و هم در مورد معایب استفاده از ajax
عالیه ممنون میشیم
خواهش می کنم آقا وحید - اسم کوچیک من سعید - لطفا من رو به اسم صدا بزنید - ممنون می شم - نظرتون رو هم در مورد مطالب تا اینجا بگید - ممنون می شم.
البته یه مرجع کامل 2008 دارم ترجمه می کنم که انشاءاله زمانیکه چاپ شد یه نسخش رو می دم خدمتتون
موفق باشید
ما را نه غم دوزخ و نی حرص بهشت است!
www.yaqubian.com
با اجازه آقا سعید و بقیه دوستان
اولین مشکلی که همه ما متوجه آن هستیم در حالت عادی شما نمی تونید دکمه back و forward داشته باشید (البته حالت عادی با نوشتن کد نویسی های پیچیده میشه این مشکل رو حل کرد)
مشکل دیگه این هست که کاربر نمی تونه صفحه رو bookmark کنه
مشکل دیگه این هست که در هنگام ارسال کاربر هیچ چیزی رو متوجه نمیشه که یک درخواست ارسال شده . بنابراین برای حل این مشکل هم باید از کد نویسی درست استفاده کرد (به عنوان مثال قبل از ارسال یک قسمت بنویسیم. در حال بارگذاری یا از آیکن های موجود استفاده کنیم و وقتی که درخواست پاسخ داده شد اطلاعات رو جایگزین کنیم)
یک مشکل دیگه ای که وجود داره در برخورد با دومین های مختلف هست. شما نمی تونید درخواستی رو از vahid.com به barnamenevis.com بدید جالب اینجاست که شما نمی تونید درخواستی رو از www.vahid.com به blog.vahid.com بدید حتی شما نمی تونید درخواستی رو از www.vahid.com به www.vahid.com:81 بدید
مشکل دیگه ای که به ذهنم می رسه مشکل در ایندکس کردن توسط موتورهای جستجو هست. همونطور که می دونید موتور جستجو بعد از باز کردن سایت شما به دنبال لینکها می گرده اما آیا با ajax ما لینک داریم که موتور جستجو بازش کنه و به صورت شاخه ای جلو بره؟
خیلی کار خوبی رو آغاز کردید. من کل پست ها رو خوندم . در ادامه اگر ارسال از طریق متد POST رو هم توضیح بدید تقریباً بحث کامل میشه.
فکر میکنم این مشکل با sitemap قابل حل باشه. مثلاً برای هر لینک آجاکسی میشه لینک معادل صفحه رو در site map قرار دادمشکل دیگه ای که به ذهنم می رسه مشکل در ایندکس کردن توسط موتورهای جستجو هست. همونطور که می دونید موتور جستجو بعد از باز کردن سایت شما به دنبال لینکها می گرده اما آیا با ajax ما لینک داریم که موتور جستجو بازش کنه و به صورت شاخه ای جلو بره؟
سلام سعید جان.
میشه لطفا ادامه بحث را دنبال نمایید. چون تا اینجاش که زیاد خوب بود و اگر چند مثال برای اینکه چگونه بتوان اطلاعات با آژاکس به بانک وارد نماییم، چگونه ویرایش نماییم و چگونه حذف نماییم.
تشکر
سلام.
این یه راهشه.
در ضمن فکر می کردم خودشون به مو قع می خواستن توضیح بدن...
یه راه دیگه رو هم من می گم.
فرض کنید یه تابع ajax داریم و url اون رو به عنوان آرگومان اون تابع در نظر گرفتیم، خب به اینصورت می تونیم، یه لینک بسازیم تا مشکلی برای موتورهای جستوجو پیش نیاد.
<a href="http://www.mysite.com/index.php" onclick="ajax(this.href); return false;">index</a>
فصل پنجم – DB در AJAX
خوب تا اینجا یاد گرفتیم که چطور یه اسکریپت PHP خارجی رو بوسیله AJAX اجرا کنیم اما در ادامه می خوایم یه سری اطلاعات رو بوسیله این تکنولوژی از DB بیرون بکشیم.
خب واسه حل تمرین بعدی(البته با استفاده از همون فایلهای قبلی) مجبوریم یه DB ایجاد کنیم و یه جدول هم با مشخصات زیر داخلش بسازیم. فرض کنین من اسم DBرو می ذاریم ajax_table و اسم جدولمون رو می ذاریم ajax_example و چهار فیلد هم واسش می ذاریم: (فایل sql داخل ضمیمه موجوده)
1- ae_name اسم شخص
2- ae_age سن شخص
3- ae_wpm تعداد لغاتی که یه نفر می تونه در یک دقیقه تایپ کنه .(word per minute)
4- ae_sex جنسیت
در این قسمت می خوایم ببینیم فایل order.html چه تغییراتی می کنه! چون می خوایم query هامون رو داخل یه فایل html بسازیم مجبوریم که المان های فرممون رو به شکل زیر تغییر بدیم که فایل ضمیمه رو می تونید یه نیگاه بندازین.
اگه فایل رو نیگاه کنین می بینین چقدر جالب می شه یه query رو در داخل یه فایل html ایجاد کرد و از اون واسه pass کردن متغیرها استفاده کرد.
تعریف query string: روشی است برای pass کردن اطلاعات بوسیله اضافه کردن اونها به آدرس URL.
خب شاید بپرسین این دیگه چیه؟ این همون ارسال اطلاعات بوسیله submit کردن یه فرمه که متد اون GET و پارامترها رو به قسمت آدرس URL اضافه می کنه. به عبارتی که بعد از علامت ? در نوار آدرس قرار می گیره و پارامترها دنبالش می یان query string می گن.
اگه تو فایل ضمیمه نیگاه کنین می بینین که آدرس مربوط به متد open شیء ajaxRequest عوض شده. پس مجبوریم یه فایل به همون اسم ایجاد کنیم تا پارامترها ارسالی داخل اون دریافت بشن و ما query مون رو اونجا اجرا کنیم.
واسه این کار از یه تابع خاص استفاده می کنیم و اون تابع:
mysql_real_escape_string. علت استفاده از این تابع رو هم همه دوستان از من بهتر می دونن!
فایل ajax-example.php هم داخل پوشه ضمیمه موجوده.
اما مهمترین قسمت بروز رسانی فایل order.html واسه نشون دادن نتیجه اجرای query مونده! خب ببینیم باید چیکار کنیم؟
این همون حقه یا رمز اصلی موفقیت AJAX که ما فقط قسمتی از فایل order.html رو واسه کارمون تغییر می دیم نه اینکه بخوایم کل صفحه رو reload کنیم!
این حقه تو اکثر مواقع بوسیله یه خاصیت تو javascript انجام می شه و اون چیزی نیست جز innerHTML
بهتر عملکرد این خاصیت رو تو عمل ببینیم. پس پیشنهاد می کنم فایل ajax-example.php رو حتما نیگاه کنین.
از div هم داخل order.html به عنوان یه place holder استفاده می کنیم تا نتیجه اجرای query رو داخل اون ببینیم.
ما را نه غم دوزخ و نی حرص بهشت است!
www.yaqubian.com
دوستان عزیز
من پست های شما رو نیگاه کردم انشاء اله در اولین فرصت درخواست های شما رو جواب می دم. در ادامه فرمایشات دوست خوبم آقا وحید راجع به مزایا و معایب ای جکس حتما مطالب بیشتری رو ذکر خواهم کرد.
در هر صورت باز هم از همه شما که وقت می ذارین و پست های اینجانب رو می خونید ممنون و متشکر
موفق باشید
ما را نه غم دوزخ و نی حرص بهشت است!
www.yaqubian.com
سلام.
واقعا برای من زیاد جالب و دلچسب است، بعدا اگر خواسته که اطلاعات لیست بازشو combo Box دوم را بر اساس لیست باز شو combo box اول نمایش دهم باید چی کار خاصی انجام دهم؟
دوست خوبم عبدالرحمن جان
لطفا این مقاله رو فعلا یه نیگاه بنداز تا بعدا در ادامه آموزش مفصل در موردش توضیح بدم.
http://www.developer.com/java/web/article.php/3577826
موفق باشید
ما را نه غم دوزخ و نی حرص بهشت است!
www.yaqubian.com
عالیییییییییییییییییییییی ییییییییییییییییییییییییی یه
ممنون از زحمتتون
آخرین ویرایش به وسیله baranmatin : جمعه 14 تیر 1387 در 01:33 صبح
سلام . در دوقسمت نام گذاری اشتباه شده بود مثلا:
name="selectFaculty" id="selectFaculty"
باید این باشد:
name="facultyList" id="facultyList"
ولی نمیدانم هنوز چرا کار نمیکند ؟؟؟
دوست خوبم baranmatin یه e-mail بزن من در خدمتت هستم.
موفق باشید.
آقا عبدالرحمن چشم فایل شما رو هم در اولین فرصت نیگاه می کنم
ما را نه غم دوزخ و نی حرص بهشت است!
www.yaqubian.com
سلام.
کدام نظری راجع به cascading drop-down list in AJAX
سلام عبدالرحمن جان
به روی چشم. دارم کار شما رو انجام می دم. tutorial که آماده شده می ذارم رو سایت
موفق باشید
ما را نه غم دوزخ و نی حرص بهشت است!
www.yaqubian.com