PDA

View Full Version : آپدیت لیست بوکس



angel_boy013
جمعه 01 اردیبهشت 1385, 22:55 عصر
توی یک فرم کاربر از لیست بوکس مثلاً سال تولدش رو انتخاب میکنه یک صفحه هم داریم که اصلاعات رو به روز میکنه وقتی وارد صفحه میشه اطلاعات از بانک اطلاعاتی خونده میشه و تو value فیلد ها نوشته میشه میخوام که اون سالی که تو فرم اول انتخاب شده نشون بده اما نمیدونم چطوری لسیت بود میره آتوماتیک روی آن چیزی که اول وقت طراحی صفحه select شده

arash_hemmat
شنبه 02 اردیبهشت 1385, 07:54 صبح
در لیستی که بروز میشه عبارت selected رو به تگ option اونی که میخوای انتخاب بشه اضافه کن. به مثال زیر دقت کن:

<select size="1" name="example">
<option value="1">arash</option>
<option value="2" selected>ali</option>
<option value="3">ahmad</option>
</select>

cybercoder
شنبه 02 اردیبهشت 1385, 08:41 صبح
البته باید کد PHP رو با جاوااسکریپت تقریبا مخلوط کنی و با استفاده از ساختارهای شرطی معلوم کنی که کدومش Selected باشه. البته از خود جاوااسکریپت هم میشه مستقلا استفاده کرد

موفق باشی

arash_hemmat
شنبه 02 اردیبهشت 1385, 11:18 صبح
البته باید کد PHP رو با جاوااسکریپت تقریبا مخلوط کنی
هیچ نیازی به استفاده از javascript نیست.

angel_boy013
شنبه 02 اردیبهشت 1385, 13:54 عصر
اینی که شما گفتین html هست و برای آپدیت نیست من میخوام اون چیزی که کاربر انتخاب کرده باشه اما اینطوری نمیشه که...!

arash_hemmat
شنبه 02 اردیبهشت 1385, 20:29 عصر
یکم فکر کن ببین چیکار باید بکنی که تو صفحه ای که بروز میشه تگ selected به گزینه ای که کاربر دفعه قبل انتخاب کرده بود اضافه بشه!

angel_boy013
یک شنبه 03 اردیبهشت 1385, 19:34 عصر
خوب دوست عزیز اگه من میدونستم که این سوال رو نمیپرسیدم

cybercoder
یک شنبه 03 اردیبهشت 1385, 22:29 عصر
هیچ نیازی به استفاده از javascript نیست.
دوست عزیز خواهشا شما یاد ما بده چطور بدون جاوااسکریپت محتویات یک فیلد متن رو که جزء فرم هستش رو با اطلاعاتی که از بانک Fetch می شه پر کنیم البته طوری که نیاز به JavaScript نیست.

cybercoder
یک شنبه 03 اردیبهشت 1385, 22:36 عصر
خوب دوست عزیز اگه من میدونستم که این سوال رو نمیپرسیدم

برای اینکه کدوم انتخاب بشه یه مثال می زنم:



<select name="caltypemenu" onChange="MM_jumpMenu('parent',this,1)" class="inputbox">
<option value="<?php echo '?cal=jalali' ?> "
<?php
if ($HTTP_GET_VARS['cal']=='jalali')
print 'selected' ;
?>
>
<?php echo 'jalali' ; ?>
</option>
<option value="<?php echo '?cal=gregorian"' ; ?>"
<?php
if ($HTTP_GET_VARS['cal']=='gregorian')
print 'selected' ;
?>
>
<?php echo 'Gregorian' ; ?>

البته در این قسمت از Get استفاده شده با یک کم تغییر میتونید به POST تبدیل کنید
قسمت مهم :


if ($cal=='jalali')
print 'selected' ;

تعیین میکنه که چی باید انتخاب باشه و اگه تعداد زیاد باشه می تونید از case و switch استفاده کنید.
این هم فانکشن جاوای مربوطه :


function MM_jumpMenu(targ,selObj,restore){ //v3.0
eval(targ+".location='"+selObj.options[selObj.selectedIndex].value+"'");
if (restore) selObj.selectedIndex=0;
}


موفق باشید.

arash_hemmat
یک شنبه 03 اردیبهشت 1385, 23:27 عصر
دوست عزیز خواهشا شما یاد ما بده چطور بدون جاوااسکریپت محتویات یک فیلد متن رو که جزء فرم هستش رو با اطلاعاتی که از بانک Fetch می شه پر کنیم البته طوری که نیاز به JavaScript نیست.
همون مثالی رو که بالا اشاره کردم بررسی میکنیم، فرض کنیم کاربر در صفحه اول گزینه ali انتخاب شده و به دلایلی میخواییم کاربر اصلاحاتی روی فرمش انجام بده و تو صفحه جدید میخواییم همون گزینه ali که تو صفحه قبل انتخاب شده بود ، انتخاب بشه ،برای اینکار از این کد استفاده میکنیم:
(فرض میکنیم که مقادیر از دیتابیس خونده شده و داخل آرایه ای بنام data ذخیره شده)

<select size="1" name="example">
<?php
foreach($data as $entry)
{
if($_POST['example']==$entry)
echo '<option selected>$entry</option>';
else
echo '<option>$entry</option>';

}
?>
</select>
همونطور که میبینید هیچ نیازی به استفاده از javascript نیست و مسئله براحتی حل میشه البته این ساده ترین راهش بود و حالا که یاد گرفتین چطور ازین روش استفاده کنین میتونین روشهای پیچیده تری هم برای انجام اینکار استفاده کنین.

cybercoder
یک شنبه 03 اردیبهشت 1385, 23:50 عصر
این کد مال پر کردن فیلد با دیتایی که از دیتابیس اومده بود اونوقت؟

arash_hemmat
دوشنبه 04 اردیبهشت 1385, 08:28 صبح
این کد مال پر کردن فیلد با دیتایی که از دیتابیس اومده بود اونوقت؟
بله این کد همون کاری رو میکنه که کد شما میکرد فقط فرقش اینه که شما لقمه رو 2 3 دور ،دور سرتون میگردونین و ...
من تعجب میکنم که مسئله به این سادگی رو چرا اینقدر یچیده میکنین در حالیکه این مسئله تقریبا تو همه کتابهای آموزش php مطرح شده!

cybercoder
دوشنبه 04 اردیبهشت 1385, 11:04 صبح
بله این کد همون کاری رو میکنه که کد شما میکرد
این درست
ولی اون کدی هم که من نوشتم مال پر کردن Data نیست عزیزم. من فقط یه مثال زدم در ضمن مثال من پیچیده نبود من با 2 تا if مطرح کردم که مسئله برای دوست عزیزمون باز بشه.

موفق باشید