我正在構建貨幣切換器並將其集成到我的網站中,用戶可以在兩種貨幣之間切換。其預訂網站的預訂表格位於左側,預訂內容佔據頁面的其餘部分Ajax:用新數據完全替換div內容
網站上的價格是默認/設置爲後端(USD)中的一種貨幣,用戶將有能力在這個和其他貨幣之間進行選擇。
當用戶選擇其他貨幣時,頁面重新加載並且價格設置爲該貨幣。現在,當用戶更改預訂表單上的輸入時會出現小問題。可以說用戶想要更改結帳日期,一旦他們這樣做,頁面上的內容就會使用ajax重新加載。發生的情況是:如果用戶切換到其他貨幣並在預訂表單上進行了更改,則默認貨幣(USD)會加載幾秒鐘,然後由其他貨幣替換。因此,想象一下,您已將貨幣從默認值切換到您通過更改其中一個輸入來修改您的預留表單,當頁面ajax重新加載時,您會暫時以默認價格呈現,然後正確(您使用的貨幣使用)顯示器
因此總之,看起來像攜帶價格的div首先加載默認貨幣,然後切換(花費1-5秒)。這不是真的很理想,那麼div不能一次加載正確的貨幣嗎?
下面的代碼處理該:
//there's a function that checks currency...
if(currency_param == "KES")
{
if (window.XMLHttpRequest)
{
// code for IE7+, Firefox, Chrome, Opera, Safari
var xmlhttp = new XMLHttpRequest();
}
else
{
// code for IE6, IE5
var xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200)
{
area.content_area.find('.gdlr-tail-currencyprice').html(this.responseText);
}
};
var result = data.content.match(/\$[\d\.]+ \/ [^<]+/gi);
var newArray = [];
$('.gdlr-tail-currencyprice').each(function(index, el)
{
var num_price = parseFloat(result[index].replace(/[^\d\.]*/g, ''));
newArray.push(num_price);
});
newArray.push({currency_param});
newArray = JSON.stringify(newArray);
xmlhttp.open("GET","switchcurrency.php?q="+newArray,true);
xmlhttp.send();
}
}
switchcurrency.php
只是需要傳遞給它的量並轉換爲所需的貨幣
的價格以gdlr-tail-currencyprice
類進行,並且如上所述,這是有問題的部分。加載默認值,然後幾秒鐘後,顯示正確的值。這部分處理的是:
area.content_area.find('.gdlr-tail-currencyprice').html(this.responseText);
希望我長的帖子作出了清楚我的問題:我該怎麼辦是做錯了,或者如果沒有,有沒有辦法與提供的新值完全替代股利內容?
什麼觸發以上? – cwallenpoole
嗨,如果你添加了jquery標籤,爲什麼你不使用$ .ajax? – daremachine
在第一次渲染的屬性中的數據屬性中添加不同貨幣的價格?然後使用'$('。currency-selector')。change(function(){...});'?更改價格元素的內容與來自其匹配所選貨幣的屬性的數據。 – Nukeface