簡體   English   中英

如何在更新前和更新后提交表單的值

[英]How to submit the values of form before update and after update

我有一個從數據庫中檢索數據並將其顯示在相應字段中的表單。 然后,用戶可以更改表單並更新這些值。 我可以通過單擊提交按鈕正確顯示數據庫(SELECT)中的數據,並通過單擊另一個提交按鈕更新它(UPDATE)。 我想要做的是將更新前的所有數據存儲在一個單獨的表中,有點像審計日志,它會告訴我以前的字段是什么以及新的更新是什么樣的。 我也想在同一個提交按鈕上同時使用更新和插入查詢。 我如何在我的表中插入“前”值。

這是我的工作更新聲明:-

if(isset($_POST['submit'])){
    // Updating the dealer info using sfid

$sql = "UPDATE tbl_dealer_info ";
$sql .= "SET phone = '".$phone."', email = '".$email."', SFID = '".$sfid."', account_name = '".$account_name."', parent_account = '".$parent_account."', awi_code = '".$awi_code."', sales_portal_id = '".$sales_portal_id."', iae = '".$iae."', rsm_val = '".$rsm_val."', door_type_val = '".$door_type_val."', payment_method_val = '".$payment_method_val."', region_val = '".$region_val."', street_address = '".$street_address."', city = '".$city."', state = '".$state."', zip = '".$zip."', area = '".$area."', market = '".$market."', boost_app = '".$boost_app."', virgin_app = '".$virgin_app."', virgin_mob_app = '".$virgin_mob_app."', start_date = '".$start_date."', bank_name = '".$bank_name."', bank_acc_number = '".$bank_acc_number."', routing_number = '".$routing_number."' WHERE SFID = '".$sfid."' ";
$sql .= "LIMIT 1";
$result = mysqli_query($conn, $sql);   

一種簡單的方法是使用隱藏值示例

<form>
<input type="text" name="phoneNumberNew">
<input type="hidden" name="phoneNumberOld">
</form>

有了這個,您可以做的是將表單提交到您的表格所在的任何地方,並填充表格,其中文本框是新數據,隱藏的將是您的舊數據。 從那里您可以使用更多隱藏值或任何您認為合適的方式提交它。 基於每個人都可以使用的技術,這只是您的一種選擇! :)

當用戶提交時,表單數據將發送到您定義的 action="" 頁面。

在該頁面中,再次運行選擇查詢,它將為您提供當前值。 然后運行更新查詢。

在您的日志中,您可以輸出當前值(來自您之前所做的選擇)和新值(來自您從表單獲得的更新字段)。

--- 在 OP 的評論之后添加了這個:

假設您有一個類似 profile.php 的頁面來更新用戶。
用戶 A 轉到 profile.php?username=A
用戶 B 轉到 profile.php?username=B
然后,您可以構建選擇和更新查詢,並指定要更新的用戶。

另一種更好、更安全的方法是設置會話 cookie。 然后您讀取該 cookie 以了解哪個會話,以及哪個用戶正在使用該頁面。

顯然,您想要確保允許修改用戶的人這樣做,但這超出了您的問題(用戶 - 角色 - 安全管理)。

這樣就沒有機會混淆用戶了。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM