فرض می کنیم وقتی کاربر دکمه سابمیت را کلیک می کند محاسبات انجام میشود و محتوای فرم با متد آجاکس ارسال می شود. می توانید از روش زیر استفاده کنید:
توجه: کدها تست نشده اند.
کد HTML:
<form method="post" action="/test.php" >
<input type="text" name="other-field1">
<input type="text" name="other-field2">
<input type="text" name="other-field3">
<input type="submit" class="btn btn-danger " name="btn_add" value="submit" />
</form>
<script>
$("form").submit(function( event ) {
event.preventDefault();
var url = form.attr("action");
var formData = $(form).serializeArray();
//calculate hidden values
hiddenValue1 = calculateHiddenValue1();
hiddenValue2 = calculateHiddenValue2();
formData.push({hiddenValue1: hiddenValue2, hiddenValue2: hiddenValue2});
$.post(url, formData)
.done(function (response) {
alert(response);
})
.fail(function() {
alert( "error" );
});
});
</script>
به شما توصیه می کنم محاسبات را سمت سرور انجام دهید تا مطمئن شوید دیتا دستکاری نشده است. شما میتوانید فیلد هیدن را حذف کنید و به روش دیگری دیتا را ارسال کنید ولی باز هم کاربر میتواند با تغییراتی در برنامه محتوای متغییر را تغییر دهید.