[英]1st form in pairing is sending 2nd form data via ajax. Why?
这将是那些长期的问题之一?
如您所见,我在此div中嵌套了两个表单。 当我分别在不同时间提交任何一种表单时,它们都通过stripe.js接收令牌,该令牌可以正常工作,付款流程中的其他功能也可以正常工作。 我的问题在这里。 以下是通过#credit-card表单发送到服务器的数据,所有表单数据均已封装,因此不应有溢出。 第一种形式从整个页面发送数据,这导致到数组,因为某些输入标签具有通用名称,所以我的服务器无法解析此信息。 为什么会这样呢?
如何获取表格以发送自身包含的数据? 这是我当前运行的javascript代码,用于将表单信息发送到服务器:
function stripeTokenHandler(token) {
// Insert the token ID into the form so it gets submitted to the server
var form = document.getElementById('credit-card');
var hiddenInput = document.createElement('input');
hiddenInput.setAttribute('type', 'hidden');
hiddenInput.setAttribute('name', 'stripeToken');
hiddenInput.setAttribute('value', token.id);
form.appendChild(hiddenInput);
varray=$(form).serializeArray();////serialize to objects -works-
$.post("php/stripeApi.php",varray,function(result){
switch (result){
case "success":
break
;
default:
$("#stripereturn-error").html(result);
break
;
}
})
}
function stripeACHTokenHandler(token) {
// Insert the token ID into the form so it gets submitted to the server
var form = document.getElementById('ach');
var hiddenInput = document.createElement('input');
hiddenInput.setAttribute('type', 'hidden');
hiddenInput.setAttribute('name', 'stripeToken');
hiddenInput.setAttribute('value', token.id);
form.appendChild(hiddenInput);
varray=$(form).serializeArray();////serialize to objects -works-
$.post("php/stripeApi.php",varray,function(result){
switch (result){
case "success":
break
;
default:
$("#stripereturn-error").html(result);
break
;
}
})
}
但是希望我足够清楚。 请不要投下赞成票,澄清的建议会很好。
您要查看“提交”按钮以及对表单提交执行的操作。
通常,这些问题是由于HTML标记错误或JavaScript在提交操作上输入错误而引起的。
例如,如果您发布的那^ JavaScript代码是这两种形式的操作,那么您将始终发布信用卡形式。
我想说,您可以在选择正确的表单元素之后使用包装功能来提交表单。 如下所示:
// Call this on the Ach form's submit action
function submitAch(){
var form = document.getElementById('ach');
submitFormToStripe(form);
}
// Call this on the credit card form's submit action
function submitCreditCard(){
var form = document.getElementById('credit-card');
submitFormToStripe(form);
}
function submitFormToStripe(form) {
var hiddenInput = document.createElement('input');
hiddenInput.setAttribute('type', 'hidden');
hiddenInput.setAttribute('name', 'stripeToken');
hiddenInput.setAttribute('value', token.id);
form.appendChild(hiddenInput);
varray=$(form).serializeArray();////serialize to objects -works-
$.post("php/stripeApi.php",varray,function(result)
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.