PDA

View Full Version : سوال: دسترسی به مقدار Text یک Select Box



Dead Space
سه شنبه 10 خرداد 1390, 06:38 صبح
سلام
دوستان یک سوال
من میخواستم زمانی که فرد در Select Box چند گزینه رو انتخاب می کنه و Submit رو میزنه نه تنها به Value اونها دسترسی پیدا کنم بلکه به مقدار داخل تگ <option> هم دسترسی داشته باشم
میخواستم ببینم آیا این شدنی هستش ؟ چون مقدار داخل Option هم برای من خیلی مهم هستش
با تشکر

colors
سه شنبه 10 خرداد 1390, 12:09 عصر
درود

فکر کنم این کارتونو راه بندازه


<form method="post">

<select name="color[]" multiple="multiple">
<option>Blue</option>
<option>Red</option>
<option>Yellow</option>
<option>green</option>
</select>

</form>

خاصیت multiple رو فعال میکنیم که بتونیم چند گزینه رو انتخاب کنیم و نام تگ select رو برابر یک آرایه قرار میدیم
و توسط کد PHP زیر مقدارهای انتخاب شده رو میخونیم


<?php

foreach($_REQUEST["color"] as $value){

echo $value,"<br/>";

}

?>

توسط حلقه foreach هر بار یکی از گزینه های انتخاب شده رو نمایش میدیم

موفق باشید

Dead Space
سه شنبه 10 خرداد 1390, 22:23 عصر
ممنون ولی این زمانی کار می کنه که Option ها value ندارن
وقتی value دارن این کد به جای مقدار داخل option فقط value رو بر میگردونه
برنامه من مثلا یه option مقدار value عدد 1 هستش متن داخلش مثلا WWWW هستش من میخوام هم به 1 دسترسی داشته باشم هم به WWWW

colors
سه شنبه 10 خرداد 1390, 23:49 عصر
درود

اگر به عدد احتیاج دارید ( مثلا تو مثال بالا option = green عدد 3 / option = yellow عدد 2 و ...) داشته باشند کد PHP رو به صورت زیر تغییر بدید در غیر این صورت منتظر جواب دوستان دیگه باشید متاسفانه راه حلی ندارم چون به تازگی اسکریپت نویسی PHP رو شروع کردم



<?php

foreach($_REQUEST["color"] as $key => $value){

echo $key."==>".$value."<br/>";

}

?>

البته با این توصیف مقدارهای داخل value برگردادنده می شود ( مقدار خاصیت value و مقدار بین تگ option را، مثل هم مقدار دهی کن )

موفق باشید

eshpilen
چهارشنبه 11 خرداد 1390, 08:45 صبح
میتونی اون متن رو هم همراه value و با یک یا چند کاراکتر جداکننده بذاری. بعد میتونی اونا رو با تابع explode از هم جدا کنی.

MMSHFE
پنج شنبه 12 خرداد 1390, 09:25 صبح
با سلام، استفاده از تگ Hidden هم فكر ميكنم چاره ساز باشه:


<FORM action="result.php" method="post">
<SELECT name="color[]" multiple="multiple">
<OPTION value="1"><INPUT type="hidden" name="colors[1]" value="Blue"/>Blue</OPTION>
<OPTION value="2"><INPUT type="hidden" name="colors[2]" value="Red"/>Red</OPTION>
<OPTION value="3"><INPUT type="hidden" name="colors[3]" value="Yellow"/>Yellow</OPTION>
<OPTION value="4"><INPUT type="hidden" name="colors[4]" value="Green"/>Green</OPTION>
</SELECT>
<BR/>
<INPUT type="submit" value="Send"/>
</FORM>
و در صفحه مقصد فرم، بصورت زير اون آرايه رو بخونيد:


foreach($_POST['color'] as $color)
{
echo 'Item #'.$color.' selected. Value: '.$colors[$color].'<B R/>'."\n";
}

نكته: بين B و R در تگ BR فاصله گذاشتم كه اينجا نشون داده بشه. امان از دست اديتور جديد سايت برنامه نويس!
موفق باشيد.