0

我在下面编写的代码非常适合将我的销售税计算结果显示到跨度标签中。但是,我不明白如何将“总”值更改为我可以使用的变量。

<script type="text/javascript">
    function doStateTax(){
        var grandtotalX = $('#GRANDtotalprice').val();
        var statetaxX = $('#ddl').val();

        $.post('statetax.php',
        {statetaxX:statetaxX, grandtotalX:grandtotalX}, 
        function(data) {
        data = $.parseJSON(data);
        $('.products-placeholder').html(data.products);     
        $('.statetax-placeholder').html(data.statetax);     
        $('.total-placeholder').html(data.total);                               
        // ...
        });
        return false;
    };
</script>   

目前,$('.total-placeholder').html(data.total); 已成功将总数放入此处:

<span class="total-placeholder"></span> 

但是我如何使 (data.total) 部分成为变量?在弄清楚这一点的帮助下,我可以将该变量作为“值”传递到隐藏的输入字段中,并成功地为 Authorize.net 提供适当的总数

我试过了,但 id 没有用(请参阅 testtotal 部分以了解我要完成的工作)..

function(data) {
    data = $.parseJSON(data);
    $('.products-placeholder').html(data.products);     
    $('.statetax-placeholder').html(data.statetax);     
    $('.total-placeholder').html(data.total);       
    $testtotal = (data.total);                      
    // ...
4

3 回答 3

1

如果您在表单中使用隐藏字段,您可以执行以下操作:

//inside $.post -> success handler.
$('.total-placeholder').html(data.total);
$('input[name=yourHiddenFieldName]', yourForm).val(data.total);

现在将与通常的提交一起提交。或者,如果您想在其他地方访问数据:

var dataValue = $('input[name=yourHiddenFieldName]', yourForm).val();
于 2012-07-08T08:36:31.057 回答
0

如果你想让'testotal'在函数范围之外被识别,你需要在函数之外定义它,然后你可以在其他地方使用它:

 var $testtotal;
 function(data) {
                data = $.parseJSON(data);
                $('.products-placeholder').html(data.products);     
                $('.statetax-placeholder').html(data.statetax);     
                $('.total-placeholder').html(data.total); 
                $testtotal = (data.total);

编辑

评论变得太长了,所以我会在这里尝试解释:

PHP 无法访问在 javascript 中定义的变量,反之亦然,PHP 知道您的 javascript 变量的唯一方法是您在 HTTP 请求(常规或 ajax)中传递该变量。

因此,如果要将$testtotal变量传递给 php,则需要发出 ajax 请求(或普通的旧 HTTP 请求)并将变量发送到 php 脚本,然后用于$_GET/$_POST 检索它。

希望能回答您的问题,如果没有,请编辑您的问题,以便更清楚。

于 2012-07-08T08:08:48.743 回答
0

成功调用后,您正在调用的“数据”对象可以在范围内的任何地方使用。像这样:

$.post('statetax.php',
{statetaxX:statetaxX, grandtotalX:grandtotalX}, 
function(data) {
    data = $.parseJSON(data);

    var total = data.total;
    var tax = data.total * 0.19;
});

return false;
};

每当您取回一个对象时,总是尝试使用 alert() 或 console.log() 查看它是什么。

alert(data); // This would return <object> or <undefined> or <a_value> etc.

之后尝试深入研究(当不是“未定义”时)。

alert(data.total); // <a_value>?
于 2012-07-08T08:13:05.953 回答