使用JQuery更新表

时间:2015-02-20 18:06:42

标签: jquery ajax

我正在使用jQuery创建价格和日期表。经过一些考验和磨难后,现在运作良好。 为了进一步改善它,我想为网站访问者提供以其他货币显示价格的可能性。所以我需要更新表格,大部分数据都相同,只更改货币。

该表最初加载了此代码

function Dates(getresult){
         $.ajax ({
            type: 'post',
            url: '/includes/calendar_price_currency.php',
            data: $("#StartDateCal").serialize(),
            success: function(result) {
             $("#pricePickerResult").html(result);
            }
        });
    }

// Auto load ajax
Dates('getresult');

这会在StartDateCal div中包含隐藏的输入(包括货币的名称),并通过calendar_price_currency.php文件运行它。结果显示在pricePickerResult div。

在该div之下,我添加了更改货币的按钮。目前我有这个代码来更新表

// Euro currency Link load ajax
$('a#euro').click(function () {
         $.ajax ({
            type: 'post',
            url: '/includes/calendar_price_currency.php',
            data: $("#StartDateCal").serialize(),
            data: {'currency': 'EUR'},
            success: function(result) {
             $("#pricePickerResult").html(result);
            }
        });
    return false;
});

但它不起作用!单击该链接会重新加载表,但没有内容。我认为我对“数据”行做错了,但我不知道是什么。我已经尝试删除第二行,然后没有任何明显的事情,但我认为该表正在重新加载相同的数据,所以没有什么可看的。

实际上,我需要大部分数据保持不变,只需要改变货币。我原本希望我的第二条数据线只会覆盖货币元素,但看起来它会覆盖所有内容。有没有办法将“序列化”与另一种加载数据的方式相混合?

修改

我发现了一些额外信息here,然后将我的脚本更改为:

$('a#euro').click(function () {
    var data = $('#StartDateCal').serializeArray();
    data.push({name: 'currency', value: 'EUR'});
    $.ajax ({
            type: 'post',
            url: '/includes/calendar_price_currency.php',
            data: data,
            success: function(result) {
            $("#pricePickerResult").html(result);
            }
        });
    return false;


   });

2 个答案:

答案 0 :(得分:0)

您有两个要发送的数据值

data: $("#StartDateCal").serialize(),
data: {'currency': 'EUR'},

删除一个。

答案 1 :(得分:0)

如果要将多个值发送到PHP页面,可以执行

data: {
    'startDateCal': $('#StartDateCal').serialize(),
    'currency': 'EUR'
},