نشان داده شدن فیلد ها بر اساس یک فیلد خاص - هفت خط کد انجمن پرسش و پاسخ برنامه نویسی

نشان داده شدن فیلد ها بر اساس یک فیلد خاص

0 امتیاز

من برای فیلد اول یعنی گروه اومدم اول یک تابع تعریف کردم

function getCategories()
{
    
    $result = mysql_query('SELECT distinct group_kala FROM sabtkala WHERE active=1 ');
    return $result;
}


 

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

$group = getCategories();
$option = '';
while ($item = mysql_fetch_assoc($group))
{
    
    $option .= "<option value>{$item['group_kala']}</option>";
    
}

 


و بعد برای نمایش در سلکت قرار دادم

<select name="group_kala" >
<?php echo $option;?>
</select>

 


هیچ مشکلی نداره و به راحتی گروه رو میاره اما برای دو فیلد بعد یعنی نام کالا و قیمت  نمیدونم چیکار کنم طبق کدهای بالا کد بهم بدید با تشکر

سوال شده دی 4, 1392  بوسیله ی 12mory (امتیاز 36)   4 6 9
ویرایش شده اسفند 1, 1392 بوسیله ی BlueBlade
لطفا توضیح بدید دقیقا میخاید چه کاری انجام بدید.
سه تا فیلد دارم
اول گروه کالا

دوم نام کالا

سوم قیمت

میخام وقتی گروه رو انتخاب کردم نام های مربوط به گروه مورد نظر بیاد و وقتی نام رو انتخاب کردم قیمت مورد نظر در فیلد زده بشه

دو مورد اول به صورت select نوشتم اما هر کاریش کردم نمیشه
کمک کنید با تشکر
کدی که توی تاپیک قبلیتون قرار دادم رو امتحان کردید مشکلش چی بود
ببینید یه جدول دارم شامل فیلدهای زیر
id
name_kala نام کالا
group_kala گروه کالا
price_kala قیمت کالا

حالا من میخام به وسیله سلکت اول گروه های موجود در دیتابیس رو بیارم (در سلکت)
بعد از انتخاب گروه مورد نظر نام های مربوط به گروه انتخابی را در یک سلکت دیگه نمایش بدم و بعد از انتخاب نام مورد نظر قیمتش رو در تکس بعدی نمایش بده
حالا طبق همین نام های فیلدها برام کد بدید

3 پاسخ

0 امتیاز
فکر کنم اگه به option یه آیدی بدید بعد با GET این آیدی و بگیرید بتونید بر اساس این آیدی هر کدی و طبق همین option درست کنید
پاسخ داده شده دی 4, 1392 بوسیله ی lili.lrp (امتیاز 34)   1 3 6
کامل توضیح بدید دوست عزیز با کد با تشکر
0 امتیاز

منظورم اینه :

$group = getCategories();
$option = '';
while ($item = mysql_fetch_assoc($group))
{
     
    $option .= "<option  id='a'  value='{$item['id']}'>{$item['group_kala']}</option>";
     
}

حالا باید این آیدی که به option دادی و بگیرید

$id=$_POST['a'];

حالا باید جدولتون و انتخاب کنید و تطبیق بدید که id توی جدول دیتابیستون با id که انتخاب شده برابر باشه:

$sql=mysql_query("SELECT * FROM `yourtable` WHERE `id`='$id' ")or die(mysql_error());
$row=mysql_fetch_assoc($sql);

البته حالا شما باید با توجه به کارایی که میخوایین انجام بدین یه تغییراتی بدین من خودم از این کدها استفاده کردم برای اینکه متن قبلی و توی جدولم لود کنم از function هم استفاده کردم و جایی که میخواستم مثلا متن و نشون بده همون function و فراخونی میکردم

پاسخ داده شده دی 10, 1392 بوسیله ی lili.lrp (امتیاز 34)   1 3 6
+1 امتیاز

سلام

یه اسکریپت هست برای نمایش شهر های ایران و بر اساس انتخاب شهر شهرستان های زیرمجموعه رو هم میاره

 

حالا می تونی با این کد این کار رو انجام بدی

ابتدا بیای اطلاعات دیتابیس رو بگیری :


function getCategories()
{ 
    $result = mysql_query('SELECT * FROM sabtkala WHERE active=1 ');
    return $result;
}

بعد اونا رو بریزی تو متغییر ها

$group = getCategories();
	$option = '';
	$price = '';
	while ($item = mysql_fetch_array($group))
	{
		$option = $item['group_kala'];
	}
	$counter = count($option);
	for(int $i = 0; $i <= $counter; $i++)
	{
		$options = $option[$i];
		$result = mysql_query("SELECT * FROM sabtkala WHERE group_kala = '$options'");
		while ($item = mysql_fetch_array($result))
		{
			$price .= $item['name_kala'] . ',' . $item['price_kala'] . ',';
		}
		$option .= '<option value="'.$options.'" datas="'.$price.'">'.{$options}.'</option>';
		$price = "";
	}

اینجوری آپشن هایی درست می کنی که مقدارشون برابر با گروه کالا هست و قسمت datas برابر با نام کالا "," قیمت کالا های اون گروه هست

خب حالا باید این کد جاوا رو به کار ببری که وقتی سلکت اولی انتخاب شد سلکت دومی برابر با مقدار datas آپشن انتخاب شده بشه

البته بعد از اینکه نام کالاها رو از قیمت جدا کردیم

<script>
	function Func() {
		var name = document.getElementById('name-kala');
		var group=document.getElementById('group-kala');
		var val=group.options[group.selectedIndex].getAttribute('datas');
		var arr=val.split(',');
		name.options.length = 0;
		for(i = 0; i < arr.length; i+=2)
		{
			if(arr[i] != "")
			{
				name.options[name.options.length]=new Option(arr[i],arr[i+1]);
			}
		}
	}
	function Ftext() {
		var nk = document.getElementById('name-kala').value;
		var txt = document.getElementById('text');
		txt.value = nk;
	} 
</script>

خب این کد میاد قسمت دیتی آپشن انتخاب شده رو می گیره و بعد اونا رو با استفاده از کاما هایی که به کار بردیم جدا می کنه و در قسمت مقدار آپشن های جدید قیمت اون کالا رو می نویسه و در بین تگ آپشن نام کالا رو و بعد وقتی سلکت دومی رو انتخاب می کنیم میاد تکست باکس رو برابر با مقدار اون آپشن انتخاب شده قرار می ده

<select name="group-kala" id="group-kala" onchange="Func()">
        <?php echo $option; ?>
</select>
<select id="name-kala" name="name" onchange="Ftext()">
            
</select>
<input name="text" type="text" id="text" />

امیدوارم متوجه کار این کد شده باشی

من وقت نکردم قسمت php شو امتحان کنم امتحان کن و جوابش رو بده

پاسخ داده شده بهمن 15, 1392 بوسیله ی darker (امتیاز 19)   1 1 2
...