PDA

View Full Version : آموزش: نمایش اتوماتیک شهرهای یک استان



رضا قربانی
پنج شنبه 08 اردیبهشت 1390, 18:02 عصر
با سلام خدمت تمامی دوستان این قسمت

چند روزی بود که درگیر یک پروژه ای بودم و به نام استان و شهرهای اون احتیاج داشتم ، به گونه ای که وقتی روی استانی کلیک می کردیم ، شهرهای اون استان رو به طور اتوماتیک برای ما نمایش بده .
نوشته شده توسط html + js

خیلی راحت می تونید در فایل ضمیمه دریافت کنید و امیدوارم تونسته باشم کمکتون کرده باشم.

یا علی
موفق باشید

numberone1
پنج شنبه 08 اردیبهشت 1390, 18:50 عصر
مرسي
اگر بخواهيم 2 تا مقدار بدست اومده رو به دينتبيس انتقال بديم بايد چجوري عمل كنم؟؟
مثلا استان تهران شهرستان شهريار
بخوام به تفكيك توي ديتابيس ثبت كنم چجوري بايد value هارو هم بدست بيارم هم انتقال بدم؟؟
ممنون ميشم راهنمائي كنيد با كد

رضا قربانی
پنج شنبه 08 اردیبهشت 1390, 22:18 عصر
خب باید در بانکت برای استان یک فیلد درست کنی و برای شهر یک فیلد . اینا جداست و بستگی به برنامه نویسی خودتون داره.

بعد هم با دستور insert در بانکت ذخیره می کنی

numberone1
جمعه 09 اردیبهشت 1390, 00:51 صبح
خب باید در بانکت برای استان یک فیلد درست کنی و برای شهر یک فیلد . اینا جداست و بستگی به برنامه نویسی خودتون داره.

بعد هم با دستور insert در بانکت ذخیره می کنی
خوب نحوه ذخيره كردن در بانك رو ميدونم . در واقع سئوال من به فرمي كه شما طراحي كردين مربوط ميشه و نحوه درياف اطلاعات از اون فرم
شما تو قسمت value ليست باكس ها اسامي تمام شهرستان هارو ذخيره كردين چجوري ميشه فقط يك استان و يك شهرستان از اون لست باكس بگرده
اينجوري كه من ديدم تمام شهرستان هاي يك استان توي يك value هستند!!

numberone1
شنبه 10 اردیبهشت 1390, 19:50 عصر
خوب نحوه ذخيره كردن در بانك رو ميدونم . در واقع سئوال من به فرمي كه شما طراحي كردين مربوط ميشه و نحوه درياف اطلاعات از اون فرم
شما تو قسمت value ليست باكس ها اسامي تمام شهرستان هارو ذخيره كردين چجوري ميشه فقط يك استان و يك شهرستان از اون لست باكس بگرده
اينجوري كه من ديدم تمام شهرستان هاي يك استان توي يك value هستند!!
كسي نيست جواب بده؟

binyaft
شنبه 10 اردیبهشت 1390, 20:20 عصر
خب تست کن بردار من!

من تست کردم نشد!

numberone1
یک شنبه 11 اردیبهشت 1390, 00:37 صبح
خب تست کن بردار من!

من تست کردم نشد!
شما اگه به فرمي كه ايشون گذاشتن تو پست 1 نگاه كنيد ميبينيد كه توي value فرم تمامي شهرستان ها رو باهم گذاشتن و وقتي من ميخوام نتيجه رو بصورت تكي داشته باشم كه ثبت كنم نميشه همينجوري كه خودتون تست كردين .
اگر كسي راه حلي داره ارائه كنه ممنون ميشم.

رضا قربانی
یک شنبه 11 اردیبهشت 1390, 02:33 صبح
شما اگه به فرمي كه ايشون گذاشتن تو پست 1 نگاه كنيد ميبينيد كه توي value فرم تمامي شهرستان ها رو باهم گذاشتن و وقتي من ميخوام نتيجه رو بصورت تكي داشته باشم كه ثبت كنم نميشه همينجوري كه خودتون تست كردين .
اگر كسي راه حلي داره ارائه كنه ممنون ميشم.

من فایل html + java رو براتون گذاشتم !!

همشون با , جدا شده هستن و باید با جاوا نام ها رو دقیق بیاریم بیرون و ذخیره بانک کنیم . حالا منم تست می کنم و ببینم می تونم وارد بانک کنم . شماها هم راه حلی دارید بفرمایید

binyaft
یک شنبه 11 اردیبهشت 1390, 09:16 صبح
استفاده از این روش به نظر من اشتباهه!

درخواست ها رو به صورت آژاکس بفرستید بهتره !

Mahdi.Spirit
یک شنبه 11 اردیبهشت 1390, 11:41 صبح
به نظر منم اين راه اشتباهه!
شما اگه ميخواين با بانك كار كنين بهتره اطلاعات شهرها و استانها رو توي جداول بانك ذخيره كنين و از اونجا بخونين! اگه اين كار رو نكنين يجورايي اعتبار داده ها زير سوال ميره!:اشتباه:

numberone1
یک شنبه 11 اردیبهشت 1390, 13:46 عصر
به نظر منم اين راه اشتباهه!
شما اگه ميخواين با بانك كار كنين بهتره اطلاعات شهرها و استانها رو توي جداول بانك ذخيره كنين و از اونجا بخونين! اگه اين كار رو نكنين يجورايي اعتبار داده ها زير سوال ميره!:اشتباه:
منظور شما اينه كه اسامي تمام استانها و و شهرستانهاشو توي ديتابيس وارد كنيم بعد با يه كوئري select بخونيم و استفاده كنيم؟؟
راه بهتري بجاي نوشتن اين همه اسم تو ديتابيس نيست؟

ghasemweb
یک شنبه 11 اردیبهشت 1390, 15:16 عصر
این فایلو دانلود کردم خوب بود دوستمون زحمت کشیدن ولی بهتر این هست که اطلاعات از دیتابیس خونده بشه اینجوری هم راحت میشه اطلاعات رو به روز کرد و هم امنیت داده ها بیشتره امیدوارم حرفام کسی رو نرنجونه

Mahdi.Spirit
یک شنبه 11 اردیبهشت 1390, 15:58 عصر
منظور شما اينه كه اسامي تمام استانها و و شهرستانهاشو توي ديتابيس وارد كنيم بعد با يه كوئري select بخونيم و استفاده كنيم؟؟
راه بهتري بجاي نوشتن اين همه اسم تو ديتابيس نيست؟

بله دقیقا منظورم همین بود!
باز بستگی داره شما برای چه كاری بخای
بعدش مگه همین الان اون فایلی كه دوستمون گذاشتن تمام شهرستانها توش نیست؟ مگه چقدر حجم دیتابیس رو میگیره؟
شما اگه اسامی رو تو دیتابیس ذخیره نكنی، پس چطور میخای شهرستان و استان رو ثبت كنی؟

numberone1
یک شنبه 11 اردیبهشت 1390, 16:56 عصر
بله دقیقا منظورم همین بود!
باز بستگی داره شما برای چه كاری بخای
بعدش مگه همین الان اون فایلی كه دوستمون گذاشتن تمام شهرستانها توش نیست؟ مگه چقدر حجم دیتابیس رو میگیره؟
شما اگه اسامی رو تو دیتابیس ذخیره نكنی، پس چطور میخای شهرستان و استان رو ثبت كنی؟
من براي يك موضوع ديگه لازم دارم اينو
راستش من براي درست كردن دسته بندي ها به اين نياز داشتم ميخواستم از همين اسكريپت كپي برداري بكنم.
چونكه تعداد دسته بندي هام خيلي زياده (حدود 170 تا موضوع) وارد كردن اين تعداد توي ديتابيس خيلي كار سختيه .ميخوام فقط كاربر وقتي يك موضوعي براي مطلبش انتخاب ميكنه در ديتابيس ثبت بشه و موقع نمايش مطلب هم موضوعش باهاش نمايش داده بشه . مشكلم اينه كه نميتونم چجوري يه فرمي طراحي كنم كه هم id موضوع و هم عنوان موضوع رو بهم برگردونه.يعني اينجوري
title =tehran ,id =1
اين فرمي هم كه دوستمون درست كرده بودن خوب بود ولي Value كه بر ميگردوند درست نبود و نميشد ثبتش كرد.

Mahdi.Spirit
یک شنبه 11 اردیبهشت 1390, 20:32 عصر
من براي يك موضوع ديگه لازم دارم اينو...
چونكه تعداد دسته بندي هام خيلي زياده (حدود 170 تا موضوع) وارد كردن اين تعداد توي ديتابيس خيلي كار سختيه ...

شما فقط يه دسته موضوع داري ؟ يا مثل اين دو دسته؟ منظورم اينه كه فقط 170 تا موضوع داري يا مثلا 10 تا موضوع با زيرمجموعه 17 تايي؟
بعدش اين 170 تا از قبل تعيين شده و ثابته ؟ يا ممكنه كاربرا به اين تعداد اضافه كنن؟
من كلا منظورم اينه كه وقتي قراره اين 170 تا موضوع رو توي اين فايل به صورت دستي بنويسيد كه كاربرا انتخاب كنن ،‌ سختي اش براي وارد كردن توي ديتابيس چيه؟ خب 170 تا كلمه است ديگه! توي همين پست قبلي كه نزديك 100 تا كلمه نوشتي!:متفکر:

خب اون 170 تا هم با دستور sql‌ وارد ديتا بيس كن ،‌اينطوري:


INSERT INTO `tblostan` (`ID`, `name`)
VALUES
(NULL, 'Tehran'),
(NULL, 'Guilan'),
(NULL, 'Golestan'),
(NULL, 'Esfahan');


البته ID رو increment بزار

numberone1
یک شنبه 11 اردیبهشت 1390, 22:38 عصر
شما فقط يه دسته موضوع داري ؟ يا مثل اين دو دسته؟ منظورم اينه كه فقط 170 تا موضوع داري يا مثلا 10 تا موضوع با زيرمجموعه 17 تايي؟
بعدش اين 170 تا از قبل تعيين شده و ثابته ؟ يا ممكنه كاربرا به اين تعداد اضافه كنن؟
من كلا منظورم اينه كه وقتي قراره اين 170 تا موضوع رو توي اين فايل به صورت دستي بنويسيد كه كاربرا انتخاب كنن ،‌ سختي اش براي وارد كردن توي ديتابيس چيه؟ خب 170 تا كلمه است ديگه! توي همين پست قبلي كه نزديك 100 تا كلمه نوشتي!:متفکر:

خب اون 170 تا هم با دستور sql‌ وارد ديتا بيس كن ،‌اينطوري:


INSERT INTO `tblostan` (`ID`, `name`)
VALUES
(NULL, 'Tehran'),
(NULL, 'Guilan'),
(NULL, 'Golestan'),
(NULL, 'Esfahan');


البته ID رو increment بزار
170تا دسته اصلي كه اينا براي هميشه ثابته و كاربرا بايد يكي از توش انتخاب كنن .
يه سئوال ديگه هم اينكه id form رو هم بايد عوض كنم و بزارم آيدي كه ديتابيس بصورت auto _ incerement انتخاب ميكنه؟

Mahdi.Spirit
دوشنبه 12 اردیبهشت 1390, 00:37 صبح
170تا دسته اصلي كه اينا براي هميشه ثابته و كاربرا بايد يكي از توش انتخاب كنن .
يه سئوال ديگه هم اينكه id form رو هم بايد عوض كنم و بزارم آيدي كه ديتابيس بصورت auto _ incerement انتخاب ميكنه؟

مثلا میخای یه كومبو باكس بزاری value رو همون id كه از بانك میگیری میزاری
بعد برای هر كاری فقط همین id رو ذخیره میكنی

binyaft
دوشنبه 12 اردیبهشت 1390, 09:11 صبح
مثلا میخای یه كومبو باكس بزاری value رو همون id كه از بانك میگیری میزاری
بعد برای هر كاری فقط همین id رو ذخیره میكنی

اینطوری فضای کمتری مصرف میشه و صحت اطلاعات وارد شده هم بالا میره!

Mahdi.Spirit
دوشنبه 12 اردیبهشت 1390, 15:05 عصر
اين هم يه فايل sql همراه با كد php براي استانها و شهرستانها ،‌ مثل اينكه iranphp ساخته
البته ممكنه يخورده قديمي باشه ،‌ ولي 6500 تا شهرهاي ايران رو داره
يه ديتابيس به اسم iran بسازيد و فايل sql كه توي فولدر ضميمه هست رو توش import كنين
فولدر هم توي هاست بزاريد و اجرا كنيد
از Ajax‌ توش استفاده شده

اين دو تا لينك از وزارت كشور كه جزييات بيشتري داره (فقط براي ديدن)
http://portal2.moi.ir/Portal/Home/Default.aspx?CategoryID=8f931308-c67e-4cf4-a5e7-3c1bbb1a6f32
http://vil.ir/

numberone1
سه شنبه 13 اردیبهشت 1390, 00:31 صبح
مثلا میخای یه كومبو باكس بزاری value رو همون id كه از بانك میگیری میزاری
بعد برای هر كاری فقط همین id رو ذخیره میكنی
نه فرم من به اين شكله


<select name="groups" size="1"><br/>
<option value="40">تست1</option>
<option value="33">تست2</option>
.
.
.
.
.
.
تا
171
</select>
if(isset($_POST['submit'])){
$groups = ($_POST['groups']);
$result = mysql_query("INSERT INTO `tbl`
(id, user_id, groups, titr)
VALUES
('','$id','$groups','$titr')

ببخشيد ديگه نميدونستم چجوري بايد توضيح بدم
سعي كردم كد و خلاصه بزارم كه منظورم بهتر متوجه بشين
من الان اين 171 موضوع رو دارم حالا ميخوام وقتي كاربر يكي رو انتخاب كرد بيام آيدي شو بفرستم توي ديتابيس به اضافه ي تيتر موضوع
حالا اگر id رو ثبت كنم تيتر دسته بندي رو چجوري بايد پيدا كنم؟؟
منتظر راه حل شما هستم .
مرسي

Mahdi.Spirit
سه شنبه 13 اردیبهشت 1390, 01:10 صبح
ببخشيد ديگه نميدونستم چجوري بايد توضيح بدم
سعي كردم كد و خلاصه بزارم كه منظورم بهتر متوجه بشين
من الان اين 171 موضوع رو دارم حالا ميخوام وقتي كاربر يكي رو انتخاب كرد بيام آيدي شو بفرستم توي ديتابيس به اضافه ي تيتر موضوع
حالا اگر id رو ثبت كنم تيتر دسته بندي رو چجوري بايد پيدا كنم؟؟
منتظر راه حل شما هستم .
مرسي

اول اینكه یه حلقه برای وارد كردن اطلاعات توی كدتون میزارید (یعنی موضوع و id رو دستی وارد نمیكنید)
بعد كه كاربر یكی رو انتخاب كرد فقط همون id موضوع رو میفرستین به بانك نه تیترش رو!
بعد برای هر كاری كه نیاز داشتین دو تا جدول رو با هم join میكنین بر اساس همون id
نمیدونم منظورم رو تونستم برسونم یا نه!

numberone1
سه شنبه 13 اردیبهشت 1390, 01:35 صبح
اول اینكه یه حلقه برای وارد كردن اطلاعات توی كدتون میزارید (یعنی موضوع و id رو دستی وارد نمیكنید)
بعد كه كاربر یكی رو انتخاب كرد فقط همون id موضوع رو میفرستین به بانك نه تیترش رو!
بعد برای هر كاری كه نیاز داشتین دو تا جدول رو با هم join میكنین بر اساس همون id
نمیدونم منظورم رو تونستم برسونم یا نه!
حلقه براي جا گذاري موضوع و id در كد html ؟
اين كد html آمادس از قبل.
نميخوام همه اينارو در ديتابيس ثبت كنم
از اين ميخوام فقط 1 دونه رو كه كاربر انتخاب ميكنه توي ديتابيس ثبت كنم.
بقيش و متوجه شدم
مرسي

Mahdi.Spirit
سه شنبه 13 اردیبهشت 1390, 11:45 صبح
حلقه براي جا گذاري موضوع و id در كد html ؟
اين كد html آمادس از قبل.
نميخوام همه اينارو در ديتابيس ثبت كنم


منظورم يه همچين كديه :


$query = "SELECT * FROM tblGroup";
$result = mysql_query($query)
if(mysql_num_rows($result) > 0) }
echo "<select name="groups" size="1">\n";
echo "<option>-- يك موضوع رو انتخاب كنيد --</option>\n";
while ($row = mysql_fetch_array($result))
{
$ID = $row['ID'];
$Group = $row['Group'];
echo "<option value='$ID'>$Group</option>\n";
}
echo "</select>\n";
}

اين ميره موضوع و ID رو از ديتابيس مياره توي كد،‌ ديگه اون 170 تا رو دستي نبايد وارد كني
اينطوري هر تغييري توي ديتابيس داده بشه توي اون صفحه ورود اطلاعات هم اعمال ميشه

رضا قربانی
یک شنبه 25 اردیبهشت 1390, 12:46 عصر
دوستان شرمنده من چند روزی نبودم .

این که کاری نداره خب به صورت post ارسال کنید و ذخیره بانک کنید به راحتی.

این فایل رو بگیرید تا جریان کار بیاد دستتون