تالار گفتمان nCIS.ir

نسخه‌ی کامل: محل قرارگیری کد جاوااسکریپت در این کد php
شما در حال مشاهده نسخه آرشیو هستید. برای مشاهده نسخه کامل کلیک کنید.
با سلام.

در کد زیر اطلاعاتی از دیتابیس خوانده شده و در جدولی نمایش داده میشود .در ستون آخر هر سطر یک لینک با نام تایید قرار دارد که وقتی روی کلمه تایید کلیک شد باید شماره دانشجویی همان سط را نمایش دهد ولی در این کد وقتی روی تایید هر سطر کلیک کنیم شماره دانشجویی آخرین سطر رو نمایش میدهد .
به فرض اگر سه سطر داشته باشیم با شماره دانشجویی 105 و 106 و 107 روی تایید هر سطری که کلیک کنیم شماره دانشجویی 107 رو نمایش میدهد.
لطفا راهنمایی کنید به چه صورت تغیر دهم.

البته این کد در ابتدا یک مشکل دیگه هم داشت که با کمک مدیر محترم حل شد.

while ($row1=mysql_fetch_assoc($r1))
{
$shomareh=$row1['shd'];
$r3=mysql_query("select * from nazarmo where nazarmo.shd=$shomareh");
$n3=@mysql_num_rows($r3);
if($n3<1)
{


if($os2=mysql_fetch_assoc($os))
{
//echo 'sssssssssssssssssssssssssssssssssssss';
// echo $os2['nazarost'];
//echo $os2['shd'];
// echo $os1;
}

$os3=mysql_query("select * from nazaros where nazaros.shd='$shomareh'");
$os4=@mysql_num_rows($os3);
if($os4<1)
{
$valuos='خیر';
}
else
{
$os5=mysql_fetch_assoc($os3);
$valuos=$os5['nazarost'];
}


$sar3=mysql_query("select * from nazarsar where nazarsar.shd='$shomareh'");
$sar4=@mysql_num_rows($sar3);
if($sar4<1)
{
$valusar='خیر';
}
else
{
$sar5=mysql_fetch_assoc($sar3);
$valusar=$sar5['nazar'];
}




$_SESSION['in2']=$row1['reshteh'];
$_SESSION['in3']=$row1['shd'];
$vaset=$row1['shd'];
echo '<tr>
  
 <td>'.$row1['shd'].'</td>
 <td>'.$row1['name'].'</td>
 <td>'.$row1['family'].'</td>
 <td> '.$row1['ostad'].'</td>
 <td>'.$row1['taahodd'].'</td>
 <td>'.$valusar.'</td>
 <td>'.$valuos.'</td>
 <td>'.$row1['reshteh'].'</td>
 <td>'.$row1['magh'].'</td>
 <td>'.$row1['sherkat'].'</td>
 <td><a href="" class="taga"> تایید</a></td>
</tr>';

}

}

?>

</table>
<script type="text/javascript">
$(document).ready(function() {
       
  $('.taga').click(function() {

if(confirm(" دانشجو تایید شود؟ "))
{
 var value="<?php echo $vaset; ?>";
 alert(value);
 
}
        
       });
        
       
    });
</script>

</body>
</html>

سؤال شما ربطی به PHP نداره و مربوط به Javascript میشه. باید با Siblingها توی jQuery کار کنید. تاپیک به بخش jQuery منتقل شد.
با سلام و عرض ادب

اگر امکان داره راهنمایی کنید چون تا اینجای کدها رو نوشتم ولی توی این قسمت گیر افتادم و نمیدونم کد جاوااسکریپت رو چه تغیری بدم.

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

while ($row1=mysql_fetch_assoc($r1))
{
$shomareh=$row1['shd'];
$r3=mysql_query("select * from nazarmo where nazarmo.shd=$shomareh");
$n3=@mysql_num_rows($r3);
if($n3<1)
{


if($os2=mysql_fetch_assoc($os))
{
//echo 'sssssssssssssssssssssssssssssssssssss';
// echo $os2['nazarost'];
//echo $os2['shd'];
// echo $os1;
}

$os3=mysql_query("select * from nazaros where nazaros.shd='$shomareh'");
$os4=@mysql_num_rows($os3);
if($os4<1)
{
$valuos='خیر';
}
else
{
$os5=mysql_fetch_assoc($os3);
$valuos=$os5['nazarost'];
}


$sar3=mysql_query("select * from nazarsar where nazarsar.shd='$shomareh'");
$sar4=@mysql_num_rows($sar3);
if($sar4<1)
{
$valusar='خیر';
}
else
{
$sar5=mysql_fetch_assoc($sar3);
$valusar=$sar5['nazar'];
}




$_SESSION['in2']=$row1['reshteh'];
$_SESSION['in3']=$row1['shd'];
echo '<tr data-student-id="' . $row1['shd'] . '">
  
<td>'.$row1['shd'].'</td>
<td>'.$row1['name'].'</td>
<td>'.$row1['family'].'</td>
<td> '.$row1['ostad'].'</td>
<td>'.$row1['taahodd'].'</td>
<td>'.$valusar.'</td>
<td>'.$valuos.'</td>
<td>'.$row1['reshteh'].'</td>
<td>'.$row1['magh'].'</td>
<td>'.$row1['sherkat'].'</td>
<td><a href="" class="taga"> تایید</a></td>
</tr>';

}

}

?>

</table>
<script type="text/javascript">
$(document).ready(function() {

   $('.taga').click(function() {
       if(confirm(" دانشجو تایید شود؟ "))
       {
           alert($(this).closest('tr').data('studentId'));
       }
   });
   
});
</script>
</body> 
</html>

پ.ن: بهتره متغییر ها رو با اسامی معنا دار و انگلیسی انتخاب کنید تا در آینده و همچنین کمک گرفتم از دیگران کمتر دچار مشکل بشید.
با سلام

ممنون از راهنمایی های شما دوست عزیز

اگر امکان داره در مورد کد هایی که اضافه کردید یه توضیح مختصر بدید. ممنون میشم

و یک سوال: اگر بخوام بجای اینکه شماره دانشجویی را alert کنم ,در یک متغیر جاوااسکریپت ذخیره کنم به چه صورت تغییر بدم؟


با تشکر
تو سطر 48 شماره دانشجویی (فیلد shd) در ویژگی دیتای data-student-id تگ tr قرار داده میشه.
تو سطر 76 هم وقتی رو لینک با کلاس taga کلیک میشه میره تگ tr والدش رو پیدا میکنه و ازش ویژگی دیتای student-id رو بدست میاره.
با سلام و عرض ادب
 
ممنون از راهنمایی شما .
 
با کمک شما مشکلم حل شد و مطالبی رو هم یاد گرقتم
 
یک سوال:  من یه نکته ای رو خوب متوجه نشدم و اینکه ویژگی  data-student-id  بر چه اساسی نام گذاری میشه؟ و اگر بخواهیم
 
یک نام دیگه در نظر بگیریم به چه صورت میشه. و دوم اینکه  چرا در data('studentId')   این نام قرار گرفت  studentId  منظورم اینکه چرا  دقیقا مثل ویزگی نیست؟
 
 
با تشکر
ویژگی -data از مواردی هست که در html5 اضافه شده به این ترتیب که میتونید بعد از -data نام دلخواه خودتون رو بنویسید و مقدار دهی کنید.
مثل data-id ، data-name ، data-name-name-name و ..... و مقدارش میتونه یه متن ساده یا یه شی باشه.
اینکه چرا نحوه استفاده از این ويژگی متفاوته این هم بر میگرده به استاندارد w3c و جاوا اسکریپت به اینگونه که کلمه -data رو حذف میکنیم سپس تمام - (dash) ها رو حذف کرده و حرف بعد از هر - (dash) رو به حرف بزرگ تبدیل میکنیم.

برای آشنایی بیشتر با این attribute لینک های زیر رو هم میتونید مطالعه کنید:
http://www.w3.org/html/wg/drafts/html/ma...attributes
https://developer.mozilla.org/en-US/docs...attributes
https://api.jquery.com/data/
برای ذخیره در متغییر هم بصورت زیر عمل کنید.
var studentId = $(this).closest('tr').data('studentId');