PDA

View Full Version : فوری: نمایش اطلاعات در لیست باکس



.fatemeh
جمعه 06 اسفند 1389, 12:07 عصر
سلام
من سه تا لیست باکس دارم که اطلاعاتشون از بانک می یاد
کدش رو نوشتم و کار می کنه فقط یه مشکل جزئی داره:
فایل و بانک رو اتچ کردم
در لیست باکس اول وقتی لوازم خانگی رو انتخاب کنین، زیر مجموعه اولش، پلاستیکی هست که داخل لیست باکس دوم نمایش داده می شه
اما زیر مجموعه پلاستیکی(که سبد هست) داخل لیست باکس سوم نشون داده نمی شه
و وقتی مورد دوم در لیست باکس دوم رو انتخاب کنین بعد دوباره پلاستیکی رو انتخاب کنین
زیرمجموعه اش در لیست باکس سوم نشون داده می شه
میشه لطفا راهنمایی کنین
ممنون

sattaryekta
جمعه 06 اسفند 1389, 15:40 عصر
این مشکل بیشتر به جاوا اسکریپت مربوط میشه.
اگر این پروژه دانشگاهی نیست: بهتره کدهای آماده را استفاده کنی.
مثلا:
http://www.felgall.com/jstip22.htm
یا
http://javascript.about.com/library/bl3drop.htm
یا لینک زیر که از php هم استفاده کرده:
http://www.plus2net.com/php_tutorial/drop_down.zip

alonemm
جمعه 06 اسفند 1389, 16:02 عصر
باسلام:
اگه كد هارو بزاريد بهتر راهنمايي مكنيم:
اما شما بايد كوئري رو جوري بگيريد كه هر ليست باكس بسته به كالاي مربوطه اضافه بشه.

.fatemeh
جمعه 06 اسفند 1389, 17:01 عصر
اگه كد هارو بزاريد بهتر راهنمايي مكنيم:

کد رو به همراه بانک اتچ کردم
ممنون می شم اگر کدم رو بررسی کنین


اگر این پروژه دانشگاهی نیست: بهتره کدهای آماده را استفاده کنی.

پروژه دانشگاهی نیست، اما از کدهای آماده هم نتونستم استفاده کنم
چون در کدهای آماده اطلاعات داخل لیست باکس ها رو دستی گذاشته و نتونستم طوری تغییر بدم که از بانک بیاره!

sattaryekta
جمعه 06 اسفند 1389, 20:35 عصر
متاسفانه کدهای شما خوانا نیستند. من راه زیر را پیشنهاد میکنم:


mysql_connect("localhost","root","") or die(mysql_error());
mysql_select_db("test") or die(mysql_error());
mysql_query("set names utf8");
$res = mysql_query("select * from categories order by id");
$cats = array();
echo "<script language=javascript >
var cats = new Array();\n";
$flag = array();
while($data = mysql_fetch_assoc($res)){
if(!isset($flag[$data["parent"]])){
$flag[$data["parent"]] = true;
echo "cats[".$data["parent"]."] = new Array();\n";
}
echo "cats[".$data["parent"]."][".$data["id"]."] = '".$data["title"]."'\n";
$cats[$data["parent"]][$data["id"]] = $data["title"];
}
echo 'function changed(val,level){
if(level){
var Sel = document.form1.level2;
}else{
var Sel = document.form1.level1;
}
Sel.options.length = 0;
for(cat in cats[val]){
var title = cats[val][cat];
Sel.options[Sel.options.length] = new Option(title,cat);
}
}
</script>';
echo "<form name=form1 id=form1 >
<select onchange='changed(this.value,0);' name=level0 id=level0 >";
foreach($cats[0] as $id=>$cat){
echo "<option value='$id' >$cat</option>";
}
echo "</select>
<select id=level1 name=level1 onchange='changed(this.value,1);' ></select>
<select id=level2 name=level2 ></select>
</form>";

و جدول زیر:

CREATE TABLE IF NOT EXISTS `categories` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`title` tinytext NOT NULL,
`parent` int(11) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=15 ;

INSERT INTO `categories` (`id`, `title`, `parent`) VALUES
(1, 'گروه یک', 0),
(2, 'گروه دو', 0),
(3, 'گروه سه', 1),
(4, 'گروه چهار', 1),
(5, 'گروه پنج', 2),
(6, 'گروه شش', 2),
(7, 'گروه هفت', 3),
(8, 'گروه هشت', 3),
(9, 'گروه نه', 4),
(10, 'گروه ده', 4),
(11, 'گروه یازده', 5),
(12, 'گروه دوازده', 5),
(13, 'گروه سیزده', 6),
(14, 'گروه چهارده', 6);

.fatemeh
شنبه 07 اسفند 1389, 00:08 صبح
ممنون
ولی من سه تا جدول دارم که اطلاعات از اون سه جدول می یاد
و شما از یک جدول استفاده کردین
چطوری باید کدی که گذاشتین رو تغییر بدم تا از همون سه جدولی که دارم اطلاعات رو بیاره؟؟

MMSHFE
شنبه 07 اسفند 1389, 07:35 صبح
با سلام، اين راه رو هم امتحان كنيد:
در انتهاي تابعي كه توي رويداد كليك ليست باكس اول نوشتين، تابع مربوط به رويداد كليك ليست باكس دوم رو صدا بزنيد. اينطوري با تغيير ليست باكس اول، ليست باكس دوم تغيير ميكنه و با صدا زدن اون تابع، ليست باكس سوم هم تغيير خواهد كرد.
موفق و مؤيد باشيد.

sattaryekta
شنبه 07 اسفند 1389, 11:14 صبح
ولی من سه تا جدول دارم که اطلاعات از اون سه جدول می یاد
سه جدول معایبی دارد:
1. شما در ازای هر رده زیر گروه باید یک جدول جدید بسازید.
2. منابع سیستم مصرف میشود.
3. سرعت اسکریپت پایین می آید.
4. کدها خوانا نیستند.

شما از یک جدول استفاده کردین
این یک روال معمول است. مگر در موارد خاص. که پروژه شما جزء موارد خاص نیست.

چطوری باید کدی که گذاشتین رو تغییر بدم تا از همون سه جدولی که دارم اطلاعات رو بیاره؟؟
چونکه راه سه جدولی را قبول ندارم راهی برای اینکار ارائه نمیدم! :شیطان: