gpt4 book ai didi

javascript - 检查 PHP/jQuery 中哪些表单字段已更新

转载 作者:行者123 更新时间:2023-11-30 00:59:44 25 4
gpt4 key购买 nike

我有一个包含约 20 个字段的表单来更新记录。当用户提交表单时,我想在我的 update_log 表中记录哪些字段已更新(更改)以及更新的值、用户名和时间。 (例如:“Andrew 于 11 月 22 日下午 3:00 将“vendor ”更新为“Acme Inc.”)

以前,我在单个字段自动保存的情况下取得了成功,因为一旦单个字段更新,我就可以记录它。但对于包含 20 个字段的表单,这会更加困难,因为我要立即更新整个表单,并且不想记录未更改的字段。

这是我用来 POST 将更新发布到 PHP 文件的 Javascript,该文件使用 $_POST 数据运行更新查询:

$("body").on('click', "#update-shipment-button", function(e){

e.preventDefault();

var shipment_id= $("#update-shipment-button").attr('data-shipment-id');
var clientName = $("#form-client-name").val();
var poNumber = $("#form-po-number").val();
var shipmentStatus = $("#form-shipment-status").val();
var supplier = $("#form-supplier").val();
var shipper = $("#form-shipper").val();
var departureDate = $("#form-departure-date").val();
var arrivalDate = $("#form-arrival-date").val();
var freightForwarder = $("#form-freight-forwarder").val();
var shippingMethod = $("#form-shipping-method").val();
var originCountry = $("#form-origin-country").val();

var data = {
shipment_id: shipment_id,
clientName: clientName,
poNumber: poNumber,
shipmentStatus: shipmentStatus,
supplier: supplier,
shipper: shipper,
departureDate: departureDate,
arrivalDate: arrivalDate,
freightForwarder: freightForwarder,
shippingMethod: shippingMethod,
originCountry: originCountry,

}

// Deliver the payload!
$.ajax({
type: "POST",
url: "st_update_shipment_query.php",
dataType:"JSON",
data: data,
success:function(response){
console.log("Successfully updated.");
},
error:function (xhr, ajaxOptions, thrownError){
console.log(xhr.status);
console.log(ajaxOptions);
console.log(thrownError);
}
});

});

解决这个问题的最佳方法是什么?如有任何帮助,我们将不胜感激:)如果需要,我可以澄清问题。

最佳答案

这是你的 PHP。 $arr1 包含旧数据(您在数据库中获得的数据),$arr2 包含新数据(在 $_POST变种)。

$arr1 = array(
'fname' => 'John',
'lname' => 'Doe'
);
$arr2 = array(
'fname' => 'Nick',
'lname' => 'Doe'
);
$dif = array_diff_assoc($arr1, $arr2);

现在 $dif 仅包含已更改的 key=>values

关于javascript - 检查 PHP/jQuery 中哪些表单字段已更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20253298/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com