我正在尝试将优惠券代码系统方法添加到我现有的表单中,唯一的问题是表单已经有表单操作。
<form id="apply" name="apply" method="post" action="<?php echo $editFormAction; ?>">
我搜索了一个解决方案的高低,偶然发现了一个AJAX java脚本/ jquery组合的解决方案。
在我的代码中,我将回显数据库中的折扣值,该值将用于数学运算。我还回应了优惠券代码本身以及要减少的总数。
<tr>
<td class="detailnoborder"><label for="Dicount_code">Enter Code for Discount:</label> </td>
<td class="detailnoborder1">
<input type="text" tabindex="33" id="coupon" name="coupon_id" size="10"/>
<input type="text" tabindex="10" id="T_cost" name="T_cost" size="5" value="<?php echo $row_rsMembershipTypes['Cost']?>"/>
<input type="text" tabindex="10" id="Discount" name="Discount" size="5" value="<?php echo $row_rsdiscount['discount']?>"/>
<input type="text" tabindex="10" id="D_amount" name="D_amount" size="5" value="<?php echo $row_rsdiscount['D_Cost']?>"/>
<input type="button" id="Check" value="Check" onclick="chk_discount()" type="submit"/>
</tr>
我最初有一个名为chk_discount的函数,我完全不确定我在做什么。
<script src="http://code.jquery.com/jquery-1.9.1.js"></script>
<script type="text/javascript">
$("#Check").click(function() {
$.ajax({
type: "POST",
url: 'ajax.php',
data:{coupon: $('#coupon').val(), },
success:function(data) {
if (data != ''){
//display error message however you would like
}
}
});
}
</script>
进一步的研究我决定创建一个连接到我的ajax.php文件的函数,php函数将在其中...说实话,我很友善。
<?php
if(isset($_POST['coupon'] == HXAR1){
$D_Cost - $Cost;
}
return ($Cost);
?>
理想情况下,当我发布到ajax时,我希望用另一个数据库减去一个数据库值来计算总成本,然后在提交时发送给Paypal,但支票折扣将在之前完成..
我不是要求任何人为我做这件事,但我会非常感谢你的帮助。
答案 0 :(得分:1)
我会尝试解释我的理解:
您有优惠券代码,可以从Javascript(客户端)到PHP(服务器端)检查优惠券是否已注册代码(HXAR1)。 这是一种确保用户不会更改它的安全方法 客户代码,然后,更改您的产品价值,或使用优惠券 那是没有注册的。然后你的服务器(PHP)是给予的主人 那个信息。
从AJAX客户端(异步JavaScript和XML方法)调用ajax.php(将在服务器中运行的文件)后,您的PHP服务器函数将在应用后返回REAL COST 优惠券折扣,然后该值是您需要发送的价值 贝宝。
- 醇>
AJAX将在success方法中接收PHP返回值,然后,您需要在javascript(客户端)中检索此值并将其发送给PAYPAL。
我会尝试解释你在哪里编码:
看看我准备好的代码片段。它很容易解释你如何将数据发送到php文件。
注意你有一些PHP代码让我觉得你有N次出现这种结构,那么$(“#Check”)或$(“#coupon”)选择器将不起作用如果有多个事件发生。我在那里删除了PHP代码,然后你可以使用自己的值
$("#Check").click(function() {
$.ajax({
type: "POST",
url: 'ajax.php',
data: {
Dis_code: $('#coupon').val(),
T_cost: $('#T_cost').val(),
Discount: $('#Discount').val()
},
success: function(data) {
if (data != '') {
alert("you succesfully send and received "+data+" from ajax.php");
//HERE IS THE SUBMIT YOU NEED ALL. IT WILL
//SUBMIT THE FORM TO THE ORIGINAL ACTION
$("#apply").submit();
}
},
error: function(data){
alert("You tried to send data to ajax.php but it didn´t give a OK response");
}
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<tr>
<td class="detailnoborder">
<label for="Dicount_code">Enter Code for Discount:</label> </td>
<td class="detailnoborder1">
<form id="apply" name="apply" method="post" action="<?php echo $editFormAction; ?>">
<br>Coupon<input type="text" tabindex="33" id="coupon" name="coupon_id" size="10" />
<br>
Cost<input type="text" tabindex="10" id="T_cost" name="T_cost" size="5" value="" />
<br>Discount<input type="text" tabindex="10" id="Discount" name="Discount" size="5" value=""/>
<br>DiscountCost<input type="text" tabindex="10" id="D_amount" name="D_amount" size="5" value="" />
<br><input type="button" id="Check" value="Check" />
</tr>
如何运作
jquery click()函数将ajax函数绑定到具有id Check的元素(在本例中为按钮)。如果有多个按钮,则应该进入 一种不同的方式。 检查按钮是否未键入=“提交”,然后它首先是一个虚拟按钮(在执行此点击绑定之前)。
$ .ajax从优惠券,T_cost和折扣输入中选择值,并将它们放入POST请求的数据有效负载中,然后发送IT 用户点击。
Ajax.php将接收数据有效负载,并能够使用其参数进行所需的所有操作。之后,将发送 返回ajax将收到的回应。
$ .ajax会在成功方法中收到Ajax.php发送的响应,然后你就可以用它做什么了。这个 方法将在服务器端的php之后立即执行 执行并且已发送响应。
- 毕竟,在success()中,$ .submit()会将名为“apply”的表单发送到原始操作。
希望这些解释和代码片段中的代码能够澄清你。对不起,我不得不删除PHP代码,使其运行。
无论如何,这里有一些关于javascript和php通信的信息