Поскольку у вас нет фрагмента кода, я собираюсь сделать очень грубый пример того, что вы можете сделать. Просто убедитесь, что информация, которую вы используете для взимания платы с клиента, правильно рассчитывается после того, как он / она публикует, и что вы не полагаетесь на поле Total
в форме, чтобы определить, с чего его взимать (поскольку этим можно манипулировать, когда отправил).
Не не вставьте бонусный код в JavaScript, так как каждый сможет его просмотреть.
Скорее реализуйте AJAX-вызов для обновления поля цены. Есть много примеров там. Также проще, если вы используете библиотеку JavaScript, такую как jQuery (http://www.jquery.com).
С jQuery это действительно просто:
// HTML
<!-- Bonus Code goes here -->
<input type="text" id="bonus_code" />
<!-- Contains the full price for the products -->
<input type="hidden" id="full_price" value="100.00" />
<!-- Contains the display price for the products -->
<input type="text" id="display_price" readonly value="100.00" /> USD
// JavaScript
$(document).ready(function()
{
$('#bonus_code').change(function()
{
$.get('calculate_price.php',
{
bonus_code: $(this).val(),
full_price: $('#full_price').val()
},
function(result)
{
$('#display_price').val(result);
}
);
});
});
// calculate_price.php
<?php
$bonus_code = $_GET['bonus_code'];
$full_price = (float)$_GET['full_price'];
if ($bonus_code == 'BONUS2001')
{
echo $full_price / 100 * 80; // output the new price
}
else
{
echo $full_price;
}
?>