[英]Process database delete action in the same PHP page with post
我正在為流程員工請假記錄構建PHP應用程序。 在此應用程序中,主屏幕填充數據庫記錄和操作按鈕。 當用戶單擊操作按鈕時,它將從表中獲取數據庫ID,並通過另一個文件刪除該記錄,然后重定向回同一頁面。 此機制使用HTML _GET方法實現。 這意味着任何人都可以在URL提要中看到行ID,並且如果有人用不同的行ID請求此URL,PHP文件將刪除該記錄,因為未采取任何其他安全措施來防止這種情況。 而且此應用程序不使用任何類型的會話。
這是我上面提到的任務的href代碼。
echo "<a href='rejectone.php?id=$lvid' class='btn btn-danger btn-xs m-r-1em'>Cancal</a>";
這是我的rejectone.php代碼
<?php
$lid =$_GET['id'];
include 'database.php';
$accval = "Accept";
try {
$query = "UPDATE leavesrecords SET leavestatus = 'Reject' WHERE lvid = '$lid'";
$stmt = $con->prepare( $query );
$stmt->bindParam(1, $id);
$stmt->execute();
}
catch(PDOException $exception){
die('ERROR: ' . $exception->getMessage());
}
header( "refresh:0;url=bs.php" );
?>
我有兩個問題
1.)如何在同一個PHP文件中運行rejectone任務,而無需重定向到另一個PHP文件
2.)如果仍然使用jejectone.php文件,如何使用HTML _POST方法而不是get方法來傳輸數據
謝謝!!
首先更改您的行:
echo "<a href='rejectone.php?id=$lvid' class='btn btn-danger btn-xs m-r-1em'>Cancal</a>";
至
echo '<a href="javascript:;" class="btn btn-danger btn-xs m-r-1em delete-item" primary-key="'.$lvid.'">Cancal</a>';
如果您尚未在網站上包含jQuery,則可以在關閉</head>
標記之前,通過將此腳本添加到頁面中來完成此操作
<script type="text/javascript" src="https://code.jquery.com/jquery-3.1.0.min.js"></script>
在關閉</body>
之前,將此JavaScript文件添加到頁面底部。
<script type="text/javascript">
$(document).ready(function(){
$(document).on('click', '.delete-item', function(e){
e.preventDefault();
if(!confirm('Are you sure you want to delete this item?')) return false;
$.post('bs.php', {'id': t.attr('primary-key'), 'delete_item': 1}, function(e){
window.location = 'bs.php';
})
})
})
</script>
將您的rejectone.php復制到bs.php,但是進行以下更改:
if(isset($_POST['delete_item']))
{
$lid = (int)$_POST['id'];
include 'database.php';
$accval = "Accept";
try {
$query = "UPDATE leavesrecords SET leavestatus = 'Reject' WHERE lvid = :lid ";
$stmt = $con->prepare( $query );
$stmt->bindParam(':lid', $lid );
$stmt->execute();
}
catch(PDOException $exception){
die('ERROR: ' . $exception->getMessage());
}
}
這就對了。
使用ajax發布方法。 有關更多詳細信息,請參見帶有示例代碼的完整解決方案示例: 刪除MySQLi記錄而不在URL中顯示id。然后使用jquery從頁面中刪除該記錄,這將提供更好的UI體驗。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.