我花了一天时间研究jquery,因为我认为它可以让我这样做。我有一个贝宝形式,我想要“onClick”按钮将此字段发送到我的sql表
<input type="hidden" name="amount" id="amount" value="0.05">
同时我的PayPal按钮正在执行此操作:
<input class="btn btn-primary" onClick="send()" type="submit" value="Subscribe">
如何将此值传递给我的process_plan.php?到目前为止,我已经拥有了它,但它已经悬挂而且无法正常工作。
function send() {
var id = $('#amount').val();
var result;
$.ajax({
type: "POST",
url: "process_plan.php",
data: {
"amount" : amount
},
async: true,
dataType: "html",
success: function(response) {
result = response;
},
error: function(response) {
alert("Oh no! An error occured!");
}
});
return result;
}
如果代码真的很糟糕,我很抱歉 - 这是我第一天研究Jquery和Ajax。
答案 0 :(得分:1)
不知道这是不是问题,但我认为你的代码中有一点错误。
请尝试:
...
data: {
amount : "amount"
},
...
如果金额也是var,请删除“
答案 1 :(得分:1)
使用firefox或fiddler(http://www.fiddler2.com/fiddler2/)等firebug工具查看请求和响应。它会告诉你沟通的方式。
据说它没有悬挂。你的send()函数是异步发布一个值,这意味着在进行ajax调用时function send()
将返回。您不能依赖函数返回时设置的结果。这就是你在调用中有一个回调函数的原因:
success: function(response) {
result = response;
},
这将在呼叫完成后运行,通常在发起功能完成后运行。要查看它的实际效果,请将其更改为:
success: function(response) {
window.alert("Response: " + response);
},
然后,您可以在成功功能中提交表单,方法是选择表格并手动调用提交:
success: function(response){
$('#form-id').submit();
}
有关ajax怪癖的更多信息,请参阅此msdn:https://developer.mozilla.org/en-US/docs/AJAX
变量amount
在哪里定义?我觉得您想要使用id
代替:
data: {
"amount" : id
},
答案 2 :(得分:1)
我认为还有另一个错误!您将变量'id'设置为字段的值,然后在帖子的数据中发送未定义的变量'amount'。这会解决它:
var amount = $('#amount').val();