PDA

View Full Version : ایجاد مقدار به option ها



kafco00
شنبه 12 بهمن 1392, 15:34 عصر
با سلام
دوستان خسته نباشید
اول بگم خاستم سرچ کنم اما نمیدونستم چی سرچ کنم.
مشکلم اینه که مثلن من یک drpdown دارم که توش استان های کشور هستند
میخوام مثلن اگر شخصی فارس رو انتخاب کرد در dropdown پایین فقط شهر های فارس بیاید.
همین طور اگر کسی یکی از شهر های فارس رو انتخاب کرد محله های فقط همون شهر در dropdown بعدی بیاد
فکر کنم بدونم چطوری نوشته میشه اما اگر کسی کد صحیح اون رو بنویسه ممنون میشم

ممنون از همگی

Javidhb
شنبه 12 بهمن 1392, 23:47 عصر
یه راهش:

//لیست شهرها بر اساس استانها
var cities = {
tehran : ['tehranCity1', 'tehranCity2'],
esfehan : ['esfehanCity1', 'esfehanCity2']
};


//اجرا با هر بار تغییرانتخاب توی استانها
$('#ostan').on('change', function(){
//گرفتن استان انتخاب شده
var ostan = $("#ostan option:selected").val()

//اگه استان مورد نظر توی لیست وجود داشت
if(cities[ostan] !== 'undefined'){
$('#shahr').html(''); //پاکسازی لیست شهرها
generateCities(ostan); //پر کردن لیست شهرها
}
});

//با توجه به لیست شهرها میاد و همچین استان انتخاب شده درآپ دان شهرها رو پر میکنه
function generateCities(targetOstan){
for(var i = 0; i<cities[targetOstan].length; i++){
$('#shahr').append('<option value="'+ cities[targetOstan][i] +'">'+ cities[targetOstan][i] +'</option>');
}
};



دمــو (http://jsfiddle.net/4t5nM/)

kafco00
یک شنبه 13 بهمن 1392, 16:26 عصر
با سلام
دوستم واقعن ممنونم
اما یک سوال پیش اومده
من چطور مثلن به این city ها value بدم؟ مثلن استان یک value عددی مثل 1 داره
می خوام این city ها هم مقدار عدد بدم تا زمان درج در دیتابیس بصورت عدد چاپ بشه
البته نحوه نمایشش همین فارسی نشته شده باشه و تغییبر نکنه
ممنون میشم راهنمایی کنید

دست تون درد نکنه

kafco00
یک شنبه 13 بهمن 1392, 21:12 عصر
سلام
فکر کنم منظورمو بد رسوندم
منظورم این tehranCity1 هست. یا esfehanCity1 .
میخوام در عین اینکه اینها نوشته هستند یک id عددی بهشون بدم. تا در ذخیره در دیتابیس مشکلی نداشته باشم.
چطور به اینها در همین js آی دی بدم؟

واقعن سپاس گذارم

Javidhb
یک شنبه 13 بهمن 1392, 22:41 عصر
کافیه شهرها رو اینجوری ذخیره کنید:

var cities = {
tehran : {1:'tehranCity1', 2:'tehranCity2'},
esfehan : {3:'esfehanCity1', 4:'esfehanCity2'}
};


و برای حلقه بین شهرهای استانها هم (چون دیگه آرایه نیستن و دارید از object استفاده میکنید) از hasOwnProperty (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/hasOwnProperty)استفاده کنید و بجای value توی optionها از id هایی که توی متغییر بالا تعریف کردید استفاده کنید...

kafco00
دوشنبه 14 بهمن 1392, 10:18 صبح
سلام

شرمندم ولی اصلی متوجه نشدم چطور از اون ای دی هایی که اضافه می کنم استفاده کنم و درون دیتابیس به عنوان value درج کنم.
این قدر رو فهمیدم که شهر ها رو چطور ای دی بدم. یعنی به option ها بجای value باید id بدم.
ولی اینکه چطور این آی دی رو تو دیتا ذخیره کنم رو نمیدونم.
اون لینکی هم که لطف کردید رو زیاد سر در نیاوردم چیه. :(
ببخشید میدونم در جی کوئری مبتدی هستم ولی اگر کمی ساده تر و با ذکر مثال توضیح بدید شاید ما هم یاد گرفتیم.

ممنونم از شما دوست خوبم

Javidhb
دوشنبه 14 بهمن 1392, 11:24 صبح
وقتی این dropbox ها رو توی فرم قرار بدید، بعد از سامبیت شدن فرم، مقدار value (همون id شهرها) گزینه ای که کاربر انتخاب کرده سمت سرور فرستاده میشه... شما سمت سرور فقط آی دی شهرها رو دریافت میکنید و بعد با توجه به زبان سمت سرور و دیتابیس تون(اینجاش دیگه از قدرت جاوااسکریپت و jQuery خارجه) اون رو توی جدول مد نظرتون ذخیره میکنید.

در مورد hasOwnProperty: چک میکنه که property یی که توی حلقه داره بررسی میشه، جز propertyهایی باشه که ما براش تعریف کردیم، نه اینکه از Object ارث برده باشه...

for (var id in cities[targetOstan]){
if(cities[targetOstan].hasOwnProperty(id)){
$('#shahr').append('<option value="'+ id +'">'+ cities[targetOstan][id] +'</option>');
}
}

kafco00
دوشنبه 14 بهمن 1392, 12:31 عصر
داداش یه دنیا ممنونم
واجب شد بریم جی کوئری یاد بگیریم.
مرجعی کامل در عین حال به زبان ساده توضیح بده همراه با مثال سراغ دارید؟
البته بگم جاوااسکریپت بلد نیستم. در حد خیلی کمی بلدم. واجبه اول جاوااسکریپت رو یاد بگیرم؟ یا یهو جی کوئری یاد بگیریم مشکلی پیش نمیاد؟
(مدیران عزیز میدونم اسپم به حساب میاد ولی ممنون میشم پست رو پاک نکنید)

باز هم ممنونم

Javidhb
دوشنبه 14 بهمن 1392, 23:38 عصر
برای آشنایی با مباحث مقدماتی:
جاوااسکریپت (باید بلد باشید بعد برید سراغ jquery) (http://www.beyamooz.com/%D8%A2%D9%85%D9%88%D8%B2%D8%B4-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%86%D9%88%DB%8C%D8%B3%DB%8C-%D8%AA%D8%AD%D8%AA-%D9%88%D8%A8/%D8%B3%D9%85%D8%AA-%DA%A9%D9%84%D8%A7%DB%8C%D9%86%D8%AA/%D8%A2%D9%85%D9%88%D8%B2%D8%B4-%D8%AC%D8%A7%D9%88%D8%A7%D8%A7%D8%B3%DA%A9%D8%B1%D B%8C%D8%A8%D8%AA)
jQuery (http://www.beyamooz.com/%D8%A2%D9%85%D9%88%D8%B2%D8%B4-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%86%D9%88%DB%8C%D8%B3%DB%8C-%D8%AA%D8%AD%D8%AA-%D9%88%D8%A8/%D8%B3%D9%85%D8%AA-%DA%A9%D9%84%D8%A7%DB%8C%D9%86%D8%AA/%D8%A2%D9%85%D9%88%D8%B2%D8%B4-%D8%AC%DB%8C-%DA%A9%D9%88%D8%A6%D8%B1%DB%8C)

بعدشم بهتره برید سراغ کتاب و مقاله های انگلیسی...