我想添加一个优惠券代码系统方法到我现有的表单,唯一的问题是,该表单已经有一个表单的动作。
<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提交,但支票折扣将完成之前。
我不是要求任何人为我做这件事,但如果有人能帮助我,我将不胜感激。
我将试着解释我所理解的:
你有一个优惠券代码,从Javascript(客户端)到PHP(服务器端)检查优惠券是否有注册代码(HXAR1)。这是一种确保用户不会更改它的安全方法客户端代码,然后,更改您的产品价值,或使用优惠券这是不注册的。然后你的服务器(PHP)是主人给信息。
从AJAX客户端(异步JavaScript和XML方法)调用AJAX . PHP(将在服务器中运行的文件)后,PHP服务器函数将在应用后返回真实成本优惠券折扣,那么这个值就是你需要发送的值贝宝。
AJAX将在成功方法中接收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的元素(在本例中是按钮)。如果有不止一个按钮,你应该把它弄进去另一种方式。检查按钮没有type="submit",那么它将首先是一个虚拟按钮(在此点击绑定执行之前)。
$。ajax从coupon、T_cost和Discount输入中选取值,并将它们放入POST请求的数据负载中,然后发送IT用户点击。
Ajax.php将接收数据负载,并能够使用其参数进行所需的所有操作。之后,将发送
- 毕竟,在success()中,$.submit()将发送名为"apply"的表单到它的原始操作。
$。ajax将在success方法中接收ajax .php发送的响应,然后您将能够对它进行处理。这方法将在PHP在服务器端运行后立即执行
希望这个解释和代码片段将澄清你。对不起,但我不得不删除php代码,使其运行。
无论如何,这里有一些关于javascript和php通信的信息
jQuery Ajax POST示例
将变量从jQuery传递到PHP