1

我花了一天时间研究 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。

4

3 回答 3

1

不知道这是否是问题所在,但我认为您的代码中有一点错误。

请试试 : ... data: { amount : "amount" }, ...

如果该数量也是 var,请删除“

于 2012-09-21T21:13:31.750 回答
1

使用 firebug for firefox 或 fiddler (http://www.fiddler2.com/fiddler2/) 等工具查看请求和响应。它会告诉你通信是如何进行的。

话虽如此,它不挂。您的 send() 函数正在异步发布一个值,这意味着function send()在进行 ajax 调用时将返回。您不能依赖函数返回时设置的结果。这就是为什么你在调用中有一个回调函数:

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
        },
于 2012-09-21T21:14:53.767 回答
1

我觉得还有一个错误!您将变量“id”设置为字段的值,然后在帖子的数据中发送未定义的变量“金额”。这将解决它:

var amount = $('#amount').val();
于 2012-09-21T21:16:46.867 回答