PDA

View Full Version : یه مشکل عجیب



mohammadreza0123
چهارشنبه 02 مهر 1393, 18:52 عصر
سلام دوستان

یه مشکل عجیب دارم

یه فرم دارم که موضوعات رو نمایش میده بهم

به شکل زیر

123852

این کد فرم بالاست:





<style>
.tanzim_tbl_menu_header td
{
background:#F93;
color:#FFFFFF;
font-family:Tahoma;


text-align:right;
padding:3px;

}
.tanzim_tbl_menu_content
{
background:#FF9;
color:#000000;

}
</style>

<table cellspacing="0" align="center" style="border:1px solid #C00; margin-top:30px; margin-bottom:10px;">
<tr class="tanzim_tbl_menu_header">
<td width="80">ردیف</td>
<td width="300">عنوان منو</td>
<td width="100">جا به جایی</td>
<td width="130">مشاهده زیر منو</td>
<td width="100">عملیات</td>
</tr>

<?php
include '../config.php';
$q=mysql_query("select * from tblmenu order by position");

$i=0;
while($row=mysql_fetch_assoc($q))
{

$i++;
?>
<tr class="tanzim_tbl_menu_content">
<td style="text-align:center;"><?php echo $i; ?></td>
<td><?php echo $row["menu_name"]; ?></td>
<td style="text-align:center"><a onclick="changePosition(<?php echo $row['menu_id']?>,<?php echo $row['position']?>)"><img src="../images/3.gif"/></a></td>
<td style="text-align:center"><a onclick="zir_menu(<?php echo $row["menu_id"]; ?>)"><img src="../images/5.png" style="cursor:pointer" /></a></td>
<td style="text-align:center"><img src="../images/6.gif" title="ویرایش" />&nbsp;&nbsp;<a onclick="del_cat(<?php echo $row['menu_id']?>,<?php echo $row['position']?>)"><img src="../images/7.gif" title="حذف" style="cursor:pointer;"/></a></td>
</tr>

<?php
}
?>
</table>





من وقتی روی هر کدوم از آیکون های مربوط به ستون زیر منو کلیک میکنم زیر منوهای مربوط به اون ستون نمایش داده میشن
به صورت زیر


123853



توی اون جدول منو ها با کدی که در زیر نوشته شده هر کدوم از ردیفا به راحتی و بدون ارور حذف میشن




if(isset($_POST["del_id"])&& isset($_POST["position"]))
{


$del="delete from tblmenu where menu_id=".$_POST['del_id'];
mysql_query($del);

$up="update tblmenu set position=position-1 where position>".$_POST["position"];
mysql_query($up);
$del_zirmenu="delete from tblzir_menu where menuid=".$_POST["del_id"];
mysql_query($del_zirmenu);
include 'tbl_menu.php';

}


این دیلیت کردن ها با ایجکس هست که فایل جاوا اسکریپتو نذاشتم




کد جدولی که زیر منو هامو نشون میده به صورت زیره:




<style>
.tanzim_tbl_menu_header td
{
background:#F93;
color:#FFFFFF;
font-family:Tahoma;


text-align:right;
padding:3px;

}
.tanzim_tbl_menu_content
{
background:#FF9;
color:#000000;

}
</style>

<table cellspacing="0" align="center" style="border:1px solid #C00; margin-top:30px; margin-bottom:10px;">
<tr class="tanzim_tbl_menu_header">
<td width="80">ردیف</td>
<td width="300">عنوان منو</td>
<td width="100">جا به جایی</td>
<td width="100">عملیات</td>
</tr>

<?php
include '../config.php';




$q=mysql_query("select * from tblzir_menu where menuid=".$_POST["menuid"]." order by position asc");
$i=0;
while($row=mysql_fetch_assoc($q))
{

$i++;
?>
<tr class="tanzim_tbl_menu_content">
<td style="text-align:center;"><?php echo $i; ?></td>
<td><?php echo $row["zir_menu_name"]; ?></td>
<td style="text-align:center"><a onclick="changePosition(<?php echo $row['zir_menu_id']?>,<?php echo $row['position']?>)"><img src="../images/3.gif"/></a></td>

<td style="text-align:center"><img src="../images/6.gif" title="ویرایش" />&nbsp;&nbsp;<a onclick="del_zirmenu(<?php echo $row['zir_menu_id']?>,<?php echo $row['position']?>)"><img src="../images/7.gif" title="حذف" style="cursor:pointer;"/></a></td>
</tr>

<?php
}
?>
</table>


بعد برای دیلیت کردن ردیفای زیر منو کد زیر رو نوشتم:



if(isset($_POST["del_zirmenu"])&&isset($_POST["position"]))
{



$del="delete from tblzir_menu where zir_menu_id=".$_POST['del_zirmenu'];
mysql_query($del);
/*$up="update tblzir_menu set position=position-1 where position>".$_POST["position"];
mysql_query($up);
echo mysql_error();*/
include 'tblzir_menu.php';
}





دیلیت میکنه اما به صورت زیر نشون میده جدول زیر منو رو که با رفرش کردن درست میشه

123854


که خط 38 اینه


while($row=mysql_fetch_assoc($q))

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

کد:


$q=mysql_query("select * from tblzir_menu where menuid=".$_POST["menuid"]." order by position asc");


رو به کد زیر تغییر میدم



$q=mysql_query("select * from tblzir_menu order by position asc");


دیگه مشکل قبل رو نداره و بعد خالی کردن جدول رو درست نشون میده بدون ارور اما دیگه زیر منو مخصوص یک منو خاص نیست چون شرط رو برداشتم



یکی کمک کنه بگه چه کنم مشکل رفع بشه

میدونم خیلی بد پرسیدم چون سخته پرسیدنش

abolfazl-z
چهارشنبه 02 مهر 1393, 20:46 عصر
قبل از استفاده از تابع mysql_fetch_assoc ابتدا بررسی کنید که خروجی کوئری fail شده یا نه ؟ یعنی بررسی کن ببین مقدار false میده یا نه ؟

.fatemeh
چهارشنبه 02 مهر 1393, 21:01 عصر
یه شرط بذار اگر

$_POST["menuid"]
وجود داشت کوئری اجر ابشه.

mohammadreza0123
پنج شنبه 03 مهر 1393, 10:56 صبح
ببین من با ایجکس گفتم اگر روی اون آیکون مشاهده زیر منو کلیک شد بیاد پنل مربوط به زیر منو رو اسلاید دان کنه و یه داده پست کنه که کد زیر هست



function zir_menu(id)
{
$.ajax()
$.post("coding.php",{menuid:id},function(response)
{
$("#panel_zirmenu").html(response).slideDown(500);
});
}




بعد در صفحه coding.php گفتم اگر ست شده بود menuid بیاد جدول منو نمایش بده که کد زیره




if(isset($_POST["menuid"]))
{

include 'tblzir_menu.php';


}



کد جدول زیر منو منم به صورت زیره:





<style>
.tanzim_tbl_menu_header td
{
background:#F93;
color:#FFFFFF;
font-family:Tahoma;


text-align:right;
padding:3px;

}
.tanzim_tbl_menu_content
{
background:#FF9;
color:#000000;

}
</style>

<table cellspacing="0" align="center" style="border:1px solid #C00; margin-top:30px; margin-bottom:10px;">
<tr class="tanzim_tbl_menu_header">
<td width="80">ردیف</td>
<td width="300">عنوان منو</td>
<td width="100">جا به جایی</td>
<td width="100">عملیات</td>
</tr>

<?php
include '../config.php';

$sql = "SELECT * FROM tblzir_menu WHERE menuid=".$_POST["menuid"]." order by position asc";

$res = mysql_query($sql);

$i=0;
while($row = mysql_fetch_assoc($res))
{

$i++;
?>
<tr class="tanzim_tbl_menu_content">
<td style="text-align:center;"><?php echo $i; ?></td>
<td><?php echo $row["zir_menu_name"]; ?></td>
<td style="text-align:center"><a onclick="changePosition(<?php echo $row['zir_menu_id']?>,<?php echo $row['position']?>)"><img src="../images/3.gif"/></a></td>

<td style="text-align:center"><img src="../images/6.gif" title="ویرایش" />&nbsp;&nbsp;<a onclick="del_zirmenu(<?php echo $row['zir_menu_id']?>,<?php echo $row['position']?>)"><img src="../images/7.gif" title="حذف" style="cursor:pointer;"/></a></td>
</tr>

<?php

}

?>
</table>


تا اینجا میاد و بعد زدن اون آیکن جدول منو نمایش میده بدون هیچ مشکلی و زیر منو مربوط به منوی انتخابی رو نشون میده

حالا برای آیکن دیلیت که در جدول زیر منو من هست رویداد آنکلیک اونو تابع زیر معرفی کردم:



function del_zirmenu(ID,POSITION)
{



if(!confirm("با حذف منو ، زیر منوها حذف خواهد شد\n آیا مایل به حذف هستید؟"))

return false;
$.ajax()
$.post("coding.php",{del_zirmenu:ID,position:POSITION},function(respo nse)
{
$("#panel_zirmenu").html(response).slideDown(500);
});
}



که میاد و دو تا داده رو پست میکنه و بعد نتیجه رو در پنل زیر منو قرار میده
در صفحه coding.php هم کد زیر رو نوشتم که کار این تابع رو تکمیل کنه و عملیات حذف رو بر اساس داده ای که این میفرسته انجام بده:




if(isset($_POST["del_zirmenu"])&&isset($_POST["position"]))
{



$del="delete from tblzir_menu where zir_menu_id=".$_POST['del_zirmenu'];
mysql_query($del);
/*$up="update tblzir_menu set position=position-1 where position>".$_POST["position"];
mysql_query($up);
echo mysql_error();*/
include 'tblzir_menu.php';
}




حالا من انتظار دارم بعد زدن دکمه حذف بیاد حذف کنه و بعد اون جدول رو دوباره نمایش بده

حذف میکنه اما اون جدول رو نشون نمیده و میاد اینو نشون میده:

123878

و در خط 38 که میگه این کد پایین نوشته:

while($row = mysql_fetch_assoc($res))

که در فایل جدول زیر منو من هست

خواهشا کمکم کنید

mohammadreza0123
پنج شنبه 03 مهر 1393, 13:05 عصر
بچه ها خواهشا جواب بدید

mohammadreza0123
پنج شنبه 03 مهر 1393, 17:42 عصر
یکی کمک کنه