PDA

View Full Version : کمک برای نمایش اطلاعات (شاید با استفاده از آژاکس)



baranmatin
یک شنبه 27 فروردین 1385, 23:14 عصر
دوستان من توی برنامه ای که دارم مینویسم ، یک table ای دارم که توش اطلاعاتی مثل نام کاربری شخص و گروهی که در آن عضو هست رو دارم
حالا من یک کوئری نوشتم که لیست گروهها رو به من نشون میده .حالا میخوام بدون refreshشدن صفخه وقتی که روی هر گروه که از table خوندم می ایستم ، لیست افرادی که تو این گروه هستن(در اصل یه کوئری دیگه)رو نمایش بده .فکر میکنم از طریق اژاکس بشه .لطفا اگر کسی میتونه راهنماییم کنه
ممنون

tabib_m
دوشنبه 28 فروردین 1385, 00:20 صبح
من از آژاکس چیزی سر در نمیارم ، ولی این راه حلی که میگم کارتون رو راه میندازه
نیازی نیست که اول کاربر روی یک گزینه وایسه و بعد کوئری دوم رو اجرا کنید.
کافیه برای هر کدوم از اونها هنگام لود شدن ، کوئری دوم رو بنویسید:


$Query1=mysql_query('select * from `Groups` where 1');
while($row1=mysql_fetch_assoc($query1)){
$Group_id=$row1['id'];
$members="";
$query2=mysql_query('select * from `members` where `group_id`='$Group_id'');
while($row2=mysql_fetch_assoc($query2)){
$members.=" , ".$row2['Member_name'];
}
echo "<tr>";
echo "<td title='$members'>";
echo $row1['Group_name'];
echo "</td>";
echo "</tr>";
}

اگه نامفهومه بگید که توضیح بدم.

baranmatin
دوشنبه 28 فروردین 1385, 12:47 عصر
سلام اول ممنونم که وقتتون رو گذاشتین و به سئوالم فکر کردین
ولی من کد شما رو امتحان کردم و ظاهرا من نتونستم منظورم رئ برسونم
ببینین منفقط یک table دارم و بر اساس group by بالای صفحه لیست گروهها رو نشون میدم
و حالا می خوام با زدن دکمه radioboxکه در کنار هر گروه اومده همون جا پایین صفحه لیست کسانی رو که توی group byدسته بندی شده رو نشون بده
یعنی اکه دارم
ali riyazi
mina riyazi
sara shimi
بالای صفحه riyazi , shimi رو نشون میده و جلوشون مینویسه که هر کدوم مثلا riyazi (2), Shimi(1) تا اینجا مشکل ندارم .حالا میخوام وقتی روی دکمه رادیو باکس shimi کلیک میکنم بدون رفرش شدن صفخه(با رفرش رو میتونم )همون جا افراد مربوطه یعنی sara و با کلیک روی riyazi افراد مربوط به اون رو نشون بده.

tabib_m
دوشنبه 28 فروردین 1385, 13:50 عصر
1- اگه شما با استفاده از iframe مشکلی ندارید میتونید از این روش استفاده کنید:


<?
$query=mysql_query("select * from `members` where 1 group by `group`");
while($row=mysql_fetch_assoc($query)){
$thisgroup=$row['group'];
echo "<p onclick=\"clicking('".$thisgrup."')\">".$thisgroup."</p>";
}
?>
<iframe id='IFrame' src=""></iframe>
<script>
function clicking(GroupName){
document.all['IFrame'].src="members_of_group.php?group_name="+GroupName;
}
</script>

اینجوری با کلیک بر روی هر گروه ، سرس iframe تغییر پیدا میکنه، و بر اساس group_name که فرستاده میشه به iframe میتونید اعضای گروه رو در صفحه ی members_of_group.php نمایش بدید.
البته شاید این رو هم یه جورایی بشه اسمش رو گذاشت رفرش شدن صفحه.

2- شاید این روش هم بتون کمک کنه:


<?
$query=mysql_query("select * from `members` where 1 group by `group`");
while($row=mysql_fetch_assoc($query)){
$group=$row['group'];
echo "<p id='".$group."' onclick=\"clicking(this.id);\">".$group."</p>";
$query2=mysql_query("select * from `members` where `group`='$group'");
$members_of_group="";
while($row2=mysql_fetch_assoc($query2)){
$members_of_group.=$row2['member_name']." - ";
}
echo "<input type='hidden' name='GROUP_".$group."' value=\"".$members_of_group."\">";
}
?>
<table>
<tr>
<td id="TD">
</td>
</tr>
</table>
<script>
function clicking(GroupName){
var Members=document.all['GROUP_'+GroupName].value;
document.all['TD'].innerText=Members;
}
</script>

اگه ناواضحه بگید توضیح بدم.
امیدوارم کارتون رو راه بندازه.

baranmatin
دوشنبه 28 فروردین 1385, 21:56 عصر
سلا م

ممنونم از لطفتون .تقریبا درست شد .
موفق باشید

baranmatin
چهارشنبه 30 فروردین 1385, 10:40 صبح
ببخشید من یه اشکال دیگه هم دارم.ئ از دیروز سعی کردم با تغییر کدهای جاوا این مشکلم رو حل کنم ولی متاسفانه مشکل داره.
میخوام وقتی روی هر گروهی کلیک کردم و در پایین لیست افرادی که در اون گروه هستند رو نشون داد حالا این افراد هم لینک داشته باشن به صفحه خودشون .یعنی وقتی رو riyaziکلیک کردم و سارا و مینا رو نشنون داد با کلیک رو ی سارا به sara.phpبره .ولی خوب با این کار میاد مجموعه افرادی که تو یگ گروه هستن رو با "-" توی آرایه میریزه .حالا من از دو راه اومدم مشکلم رو حل کنم ولی نشد .یکی اینکه خواستم هر شخص رو تو جاوا با آدرسش join کنم که errorجاوا میده و خواستم آرایه رو از جاوا بدم به متغییر phpولی نتونستم .میشه راهنمایی کنید؟
ممنون

tabib_m
چهارشنبه 30 فروردین 1385, 13:27 عصر
توی فانکشن clicking به جای innerText از innerHtml استفاده کن.
بعد میتونی متن html بهش اضافه کنی.
برای مثال:


<?
$query=mysql_query("select * from `members` where 1 group by `group`");
while($row=mysql_fetch_assoc($query)){
$group=$row['group'];
echo "<p id='".$group."' onclick=\"clicking(this.id);\">".$group."</p>";
$query2=mysql_query("select * from `members` where `group`='$group'");
$members_of_group="";
while($row2=mysql_fetch_assoc($query2)){
$members_of_group.="<a href='show_member.php?member=".$row2['member_id']."'>".$row2['member_name']." </a> <br>";
}
echo "<input type='hidden' name='GROUP_".$group."' value=\"".$members_of_group."\">";
}
?>
<table>
<tr>
<td id="TD">
</td>
</tr>
</table>
<script>
function clicking(GroupName){
var Members=document.all['GROUP_'+GroupName].value;
document.all['TD'].innerHtml=Members;
}
</script>

baranmatin
پنج شنبه 31 فروردین 1385, 23:04 عصر
خیلی خیلی ممنونم از لطفتون
موفق باشین