بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]
پرسش و پاسخ

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

مدیریت گفتگو
mahmood.hojabri 11 سال پیش
آخرین تغییر: 10 سال پیش

با سلام خدمت شما و دوستان ارجمند.
من یه کلاس دارم که شامل فانکشنهایی مثل delete,login و... هست و همه به درستی برای ثبت یا تغییر یا حذف اطلاعات توی database کار میکنن.
من میخوام تأیید واسه حذف رکورد بذارم. این رو بگم که اگه تأیید نذارم دیلیت به درستی کار میکنه.
این هم کد:

 ///// Delete A record
elseif($_GET['act']=='del'){
    require_once '../classes/user.class.php';
    $us=new User();
    $us->user_id=$_GET['id'];
?>
آیا میخواهید این نام کاربری را حذف نمایید؟
<br>
<a href="user_management.php?action=delyes&id=<?php echo $us->user_id;?>">بله</a>
<a href="user_management.php?action=delno">خیر</a>
<?php
if ($_GET['action']=="delyes"){
$us->Delete();
echo "shod";
    }elseif ($_GET['action']=="delno"){
echo "nashod";
}
}


لطفا راهنمایی کنید چون الان کد کار نمیکنه.

نظرات

کاشی زاده 10 سال پیش
لطفا کد هاتون رو مرتب کنید و داخل تگ مربوطه قرار دهید .
mahmood.hojabri 10 سال پیش
متاسفانه من نمیتونم با تولبار سایت کار کنم چون برای نابینایان نامناسب است.

پاسخ‌ها 2

کاشی زاده 10 سال پیش

متن شما توسط بنده ویرایش شد ، ولی با توجه به ناقص بودن متن اگر دقیق تر مشکل رو مطرح کنید شاید بتونم کمکی بهتون بکنم . ولی برای اینکه تایید حذف رو بگیرید به نظر من بهترین راه استفاده از Javascript و تعریف یک فرم confrim میباشد که نمونه کد آن را در زیر قرار دادم ، داخل شرطی که نوشتم میتونید کد های مربوط به حذف را استفاده کنید .

 <script>

var result = confirm("Want to delete?");
if (result) {
//Logic to delete the item
}

</script>

 

نظرات

mahmood.hojabri 10 سال پیش
سلام. بابت پاسخ شما ممنونم. راهی هست که yes و no یا ok و cancel به فارسی باشن؟
mahmood.hojabri 10 سال پیش
با سلام. کد رو به شکل زیر تغییر دادم: لینک Delete A record }elseif($_GET['act']=='del'){ require_once '../classes/user.class.php'; $us=new User(); $us->user_id=$_GET['id']; ?>  [removed] var result = confirm("want to delete?"); if (result) { <?php $us->Delete(); header("location: user_management.php");?> } [removed] ولی متاسفانه هیچ تأییدی نمیاد و رکورد حذف میشه.
کاشی زاده 10 سال پیش

برای اینکه دایلوگ مورد نظر رو کاملا سفارشی کنید میتونید از JQueryUI استفاده کنید .

نمونه کد :

 <!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>jQuery UI Dialog - Modal confirmation</title>
<link rel="stylesheet" href="//code.jquery.com/ui/1.11.4/themes/smoothness/jquery-ui.css">
<script src="//code.jquery.com/jquery-1.10.2.js"></script>
<script src="//code.jquery.com/ui/1.11.4/jquery-ui.js"></script>
<link rel="stylesheet" href="/resources/demos/style.css">
<script>
$(function() {
$( "#dialog-confirm" ).dialog({
resizable: false,
height:140,
modal: true,
buttons: {
"Delete all items": function() {
$( this ).dialog( "close" );
},
Cancel: function() {
$( this ).dialog( "close" );
}
}
});
});
</script>
</head>
<body>

<div id="dialog-confirm" title="Empty the recycle bin?">
<p><span class="ui-icon ui-icon-alert" style="float:left; margin:0 7px 20px 0;">
</span>These items will be permanently deleted and cannot be recovered. Are you sure?</p>
</div>

<p>Sed vel diam id libero <a href="http://example.com">rutrum convallis</a>
. Donec aliquet leo vel magna. Phasellus rhoncus faucibus ante. Etiam bibendum, enim faucibus aliquet rhoncus,
arcu felis ultricies neque, sit amet auctor elit eros a lectus.</p>

</body>
</html>

این کد رو برای تایید استفاده کنید .

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

برای این کار میتونید از ajax استفاده کنید یا از دستورات ارسال javascript مثل این :

 window.location.href='index.php?delete_id='+id;

که با این کار به صورت GET در خواست شما ارسال میگردد ولی از نظر امنیت توصیه نمیشود .

نظرات

mahmood.hojabri 10 سال پیش
با سلام. تشکر. آیا نمیشه من کد php خودم رو بدون جاوا اسکریپت اصلاح کنم؟ آخه همین کد رو توی یه صفحه دیگه نوشتم کار کرده.
کاشی زاده 10 سال پیش
چرا شما میتونید یک صفحه جداگانه ایجاد کنید و داخل با استفاده از HTML و CSS یک فرم تهیه کنید و داخل دکمه ای برای تایید بگذارید ولی دیگه قابلیت تغییر در لحظه از شما گرفته میشود و یک صفحه اضافی باید لود کنید.

پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .