我有问题。我有一张信用卡表格,客户将填写数据并提交给银行评估。但是,它应该在将其数据发送到支付网关的函数**之前执行一些操作**。 我将逐步说明应该发生的事情:
但是第3步没有运行。这是我的代码:
$('#credit_card_form').submit(function() {
$.post($("#credit_card_form").attr('action'), $("#credit_card_form").serialize(), function(data){
$("#return_form").html(data);
});
return false;
});
POST发送到这里:
if ($_POST['f'] == 'pay_credit_card') {
$brand_card = $_POST['card_brand'];
$number_card = $_POST['card_number'];
$exp_month = $_POST['card_valid_month'];
$exp_year = $_POST['card_valid_year'];
$cod_security = $_POST['card_security'];
$name_card = $_POST['card_name'];
// Example - just to illustrate that i have a check here
if ($_POST['card_number'] == '') {
echo "Fill the field X"
return false;
}
// d_none = display: none;
echo "<script>$('#processing_card').removeClass('d_none'); $('#div_credit_card_form').addClass('d_none');</script>";
$return_gateway = CS_MundiPagg($brand_card, $number_card, $exp_month, $exp_year, $cod_security, $name_card);
if ($return_gateway == 'Captured') {
echo "<script>$('#success_card').removeClass('d_none'); $('#modal-close').addClass('d_none');</script>";
}
}
脚本经过&#34; echo&#34;在CS_MundiPagg()的上方直接回答,在脚本的末尾。好像它&#34;崩溃&#34;用户提交表单后只提供最终答案(付款是否已批准)的脚本。
我几乎尝试过所有事情,但我找不到解决方案。隧道尽头有希望吗?
答案 0 :(得分:0)
您应该确保在使用序列化插件之前关闭了我遇到此问题的<form>
</form>
代码,这要归功于我在jquery中发现了一个错误。另外,请务必使用$(document).ready(function ()
还要将代码更改为
$(document).ready(function () {
//replace to buttonid click function
$('#credit_card_form').click(function() {
var combinedData = $("#credit_card_form").serialize();
$.post(
"page.php",
combinedData
).done(function(data) {
//alert("Successfully submitted!");
$("#result").html(data);
}).fail(function () {
//alert("Error submitting forms!");
})
});
});
答案 1 :(得分:0)
问题是,当你的PHP代码从例程CS_MundiPagg()收到答案后,你会在完成所有工作后收到来自AJAX调用的答案。
要显示&#34;请稍候!&#34;在发送查询之前,您应该在浏览器中执行此操作。
你可以这样试试:
$('#credit_card_form').submit(function() {
var myFormData = $("#credit_card_form").serialize();
var myWaitMsg = "Please wait ... <br><img src='img/waiting.gif'>";
$("#return_form").html(myWaitMsg);
$.post(
$("#credit_card_form").attr('action'),
myFormData,
function(data){
$("#return_form").html(data);
}
);
return false;
});