Jquery 在fancybox中使用AJAX调用
我正在创建一个webshop,在其中我使用一个带有iframe的fancybox在webshop中单击产品的详细信息页面 在产品的详细信息页面中,您可以通过AJAX调用购买产品。该调用将购买发送到数据库并更新购物车金额 但是,我第一次单击buy按钮时,iframe只是刷新。从第二次开始,这个按钮就可以完美地工作,但是我不能再关闭fancybox了(无论是通过单击close按钮,还是通过使用代码)。我也没有遇到任何javascript错误,当自己打开产品详细信息页面(不是在fancybox中)时,一切都很正常 由于我在任何地方都不会出错,而且没有fancybox,一切都可以正常工作,所以我真的不知道应该在这里放哪段代码 Fwiw我正在运行jquery版本1.8.3和fancybox版本1.3.4 编辑:以下是相关代码 打开我的fancybox的javascript函数Jquery 在fancybox中使用AJAX调用,jquery,ajax,fancybox,Jquery,Ajax,Fancybox,我正在创建一个webshop,在其中我使用一个带有iframe的fancybox在webshop中单击产品的详细信息页面 在产品的详细信息页面中,您可以通过AJAX调用购买产品。该调用将购买发送到数据库并更新购物车金额 但是,我第一次单击buy按钮时,iframe只是刷新。从第二次开始,这个按钮就可以完美地工作,但是我不能再关闭fancybox了(无论是通过单击close按钮,还是通过使用代码)。我也没有遇到任何javascript错误,当自己打开产品详细信息页面(不是在fancybox中)时,
function ShowAssetDetail(lngAssetID) {
$.fancybox(
{
'modal': false,
'width': 500,
'height': 500,
'autoscale': false,
'type': 'iframe',
'href': '/Code/Webshop/WS_Detail_Layout_2.asp?AssetID=' + lngAssetID
});
}
<div name="SHOPPINGCART" id="SHOPPINGCART" border="1">
<table class="ShoppingCart" title="Naar het detail van uw winkelmandje / Naar de kassa">
<tr>
<td>
<a href="/Code/Webshop/WS_Order_Detail.asp?">
€ 96,00
</a>
</td>
<td>
<a href="/Code/Webshop/WS_Order_Detail.asp?">
<img src="/code/_Images/WS_basket_go.gif" width="16" height="16" border="0" title="">
</a>
</td>
</tr>
</table>
</div>
<table class="AssetDetail_BuyAsset_Table" cellspacing="0" cellpadding="3px" width="100%">
<tr class="TableHeading1">
<td>P. iBTW</td>
<td colspan="2"> </td>
</tr>
<tr class="Normal_Text_1">
<td>€ 25,00</td>
<td><input type="text" name="X_PurchaseQuantity" id="X_PurchaseQuantity" size="5" value="3" onclick="this.select()">
<td><a href="#AddProductToShoppingCart" onclick="AddProductToShoppingCart(X,Y,document.getElementById('X_PurchaseQuantity').value,Z)"><img src="/code/_Images/WS_basket_add.gif" border="0"></a></td>
</tr>
</table>
fancybox中显示的iframe
function ShowAssetDetail(lngAssetID) {
$.fancybox(
{
'modal': false,
'width': 500,
'height': 500,
'autoscale': false,
'type': 'iframe',
'href': '/Code/Webshop/WS_Detail_Layout_2.asp?AssetID=' + lngAssetID
});
}
<div name="SHOPPINGCART" id="SHOPPINGCART" border="1">
<table class="ShoppingCart" title="Naar het detail van uw winkelmandje / Naar de kassa">
<tr>
<td>
<a href="/Code/Webshop/WS_Order_Detail.asp?">
€ 96,00
</a>
</td>
<td>
<a href="/Code/Webshop/WS_Order_Detail.asp?">
<img src="/code/_Images/WS_basket_go.gif" width="16" height="16" border="0" title="">
</a>
</td>
</tr>
</table>
</div>
<table class="AssetDetail_BuyAsset_Table" cellspacing="0" cellpadding="3px" width="100%">
<tr class="TableHeading1">
<td>P. iBTW</td>
<td colspan="2"> </td>
</tr>
<tr class="Normal_Text_1">
<td>€ 25,00</td>
<td><input type="text" name="X_PurchaseQuantity" id="X_PurchaseQuantity" size="5" value="3" onclick="this.select()">
<td><a href="#AddProductToShoppingCart" onclick="AddProductToShoppingCart(X,Y,document.getElementById('X_PurchaseQuantity').value,Z)"><img src="/code/_Images/WS_basket_add.gif" border="0"></a></td>
</tr>
</table>
P.iBTW
€ 25,00
javascript函数和AJAX调用
<script language="JavaScript" type="text/JavaScript">
var strShoppingCartContainerElemID
var ajaxShoppingCartResponse;
var ajaxAssetAmountResponse;
var lngAjaxFinished;
var lngAjaxToFinish;
function AddProductToShoppingCart (lngAssetID,lngPriceID,dblPurchaseQuantity,dblAssetPrice) {
if (typeof(lngAssetID) == 'undefined' || typeof(lngPriceID) == 'undefined') return false;
StartUserWait(); //This just generates a spinner
lngAjaxFinished = 0;
lngAjaxToFinish = 1; //change into 2 when the orderitem amount/value is ever displayed again
var strShoppingCartURL = '/Code/_CommonCode/AJAX_Generic.asp?Proc=WS_AddAssetToShoppingCart';
ajaxShoppingCartResponse = CallAJAXURL(strShoppingCartURL,ReceiveAJAXShoppingCartResponse);
var strAssetAmountURL = '/Code/_CommonCode/AJAX_Generic.asp?Proc=WS_AmountAndValueOfAssetInShoppingCart';
ajaxAssetAmountResponse = CallAJAXURL(strAssetAmountURL, ReceiveAJAXAssetAmountResponse);
}
function ReceiveAJAXShoppingCartResponse(){
if (ajaxShoppingCartResponse) if (ajaxShoppingCartResponse.readyState == 4){
var records = ajaxShoppingCartResponse.responseText.split("<br>");
var results = records[0].split("___");
var lngOrderHeadID = parseInt(results[0]);
var dblTotalValue = parseInt(results[1]);
var strFormattedCurrency = results[2];
/*Write child's shoppingcart*/
WriteShoppingCart('SHOPPINGCART', dblTotalValue, strFormattedCurrency, 0);
/*Write parent's shoppingcart*/
WriteShoppingCart('SHOPPINGCART', dblTotalValue, strFormattedCurrency, 1);
ajaxShoppingCartResponse = undefined;
/*UpdateAjaxFinished();*/
}
}
function ReceiveAJAXAssetAmountResponse(){
if (ajaxAssetAmountResponse) if (ajaxAssetAmountResponse.readyState == 4)
{
var records = ajaxAssetAmountResponse.responseText.split("<br>");
var results = records[0].split("___");
var lngAssetID = parseInt(results[0]);
var dblTotalPurchaseQuantity = parseInt(results[1]);
var strTotalPurchasePrice = results[2];
if(parent.document.getElementById('AssetRow_' + lngAssetID)) {
if(dblTotalPurchaseQuantity > 0) {
parent.document.getElementById('AssetRow_' + lngAssetID).style.fontWeight = 'bold';
parent.document.getElementById('NOUnits_' + lngAssetID).value = dblTotalPurchaseQuantity;
} else {
parent.document.getElementById('AssetRow_' + lngAssetID).style.fontWeight = 'normal';
parent.document.getElementById('NOUnits_' + lngAssetID).value = '';
}
}
document.getElementById('X_PurchaseQuantity').value = dblTotalPurchaseQuantity;
ajaxAssetAmountResponse = undefined;
UpdateAjaxFinished();
}
}
function WriteShoppingCart(strContainerElemID, dblTotalValue, strFormattedCurrency, bitParent){
if (strContainerElemID == '') strContainerElemID = strShoppingCartContainerElemID
var container;
if(bitParent == 0) {
container = document.getElementById(strContainerElemID);
} else {
container = parent.document.getElementById(strContainerElemID);
}
if (!container) return false;
strShoppingCartContainerElemID = strContainerElemID;
var strHTML = '';
dblTotalValue = parseInt(dblTotalValue);
strHTML += '<table class="ShoppingCart">' + '\n';
strHTML += ' <tr>' + '\n';
if (dblTotalValue > 0){
strHTML += ' <td>' + '\n';
strHTML += ' <a href="/Code/Webshop/WS_Order_Detail.asp?"> \n';
strHTML += ' ' + strFormattedCurrency + '\n';
strHTML += ' </a>' + '\n';
strHTML += ' </td>' + '\n';
strHTML += ' <td>' + '\n';
strHTML += ' <a href="/Code/Webshop/WS_Order_Detail.asp?"> \n';
strHTML += ' <img src="/code/_Images/WS_basket_go.gif" width="16" height="16" border="0" TITLE=""> \n';
strHTML += ' </a>' + '\n';
strHTML += ' </td>' + '\n';
} else {
strHTML += ' <td>€ 0,00</td>' + '\n';
}
strHTML += ' </tr>' + '\n';
strHTML += '</table>' + '\n';
container.innerHTML = strHTML;
}
function UpdateAjaxFinished(){
if (typeof(lngAjaxFinished) == 'undefined') lngAjaxFinished = 0;
if (typeof(lngAjaxToFinish) == 'undefined') lngAjaxToFinish = 1;
lngAjaxFinished++;
if (lngAjaxFinished >= lngAjaxToFinish) EndUserWait(); //this stops the spinner
}
</script>
var StrshoppingCartContainereRemid
var ajaxShoppingCartResponse;
var ajaxAssetAmountResponse;
var-lngajax;
var lngAjaxToFinish;
函数AddProductToShoppingCart(lngAssetID、lngPriceID、DblPurchasEquality、dblAssetPrice){
if(typeof(lngAssetID)='undefined'| | typeof(lngPriceID)=='undefined')返回false;
StartUserWait();//这只是生成一个微调器
lngAjaxFinished=0;
lngAjaxToFinish=1;//再次显示orderitem金额/值时,更改为2
var strShoppingCartURL='/Code/_CommonCode/AJAX_Generic.asp?Proc=WS_AddAssetToShoppingCart';
ajaxShoppingCartResponse=调用AjaxURL(strShoppingCartURL,ReceiveAJAXShoppingCartResponse);
var strAssetAmountURL='/Code/_CommonCode/AJAX_Generic.asp?Proc=WS_AmountAndValueOfAssetInShoppingCart';
AjaxAssetMountResponse=调用AjaxUrl(strAssetAmountURL,ReceiveAjaxAssetMountResponse);
}
函数ReceiveAJAXShoppingCartResponse(){
if(ajaxShoppingCartResponse)if(ajaxShoppingCartResponse.readyState==4){
var records=ajaxShoppingCartResponse.responseText.split(“
”);
var results=记录[0]。拆分(“___;”);
var lngOrderHeadID=parseInt(结果[0]);
var dblTotalValue=parseInt(结果[1]);
var strFormattedCurrency=结果[2];
/*写孩子的购物车*/
WriteShoppingCart('SHOPPINGCART',dblTotalValue,strFormattedCurrency,0);
/*编写家长的购物车*/
WriteShoppingCart('SHOPPINGCART',dblTotalValue,strFormattedCurrency,1);
ajaxShoppingCartResponse=未定义;
/*UpdateAjaxFinished()*/
}
}
函数ReceiveAJAXAssetAmountResponse(){
if(ajaxAssetAmountResponse)if(ajaxAssetAmountResponse.readyState==4)
{
var records=ajaxAssetAmountResponse.responseText.split(“
”);
var results=记录[0]。拆分(“___;”);
var lngAssetID=parseInt(结果[0]);
var dblTotalPurchaseQuantity=parseInt(结果[1]);
var strTotalPurchasePrice=结果[2];
if(parent.document.getElementById('AssetRow_'+lngAssetID)){
如果(dblTotalPurchaseQuantity>0){
parent.document.getElementById('AssetRow_'+lngAssetID).style.fontWeight='bold';
parent.document.getElementById('nonunits_'+lngAssetID).value=dblTotalPurchaseQuantity;
}否则{
parent.document.getElementById('AssetRow_'+lngAssetID).style.fontWeight='normal';
parent.document.getElementById('nonuits_'+lngAssetID).value='';
}
}
document.getElementById('X_PurchaseQuantity')。value=dblTotalPurchaseQuantity;
ajaxAssetAmountResponse=未定义;
UpdateAjaxFinished();
}
}
函数WriteShoppingCart(strContaineReMid、dblTotalValue、strFormattedCurrent、bitParent){
如果(strContaineReMid='')strContaineReMid=strShoppingCartContaineReMid
var容器;
如果(位父项==0){
container=document.getElementById(strContaineReId);
}否则{
container=parent.document.getElementById(strContaineReId);
}
如果(!container)返回false;
strShoppingCartContainereId=strContainereId;
var strHTML='';
dblTotalValue=parseInt(dblTotalValue);
strHTML+=''+'\n';
strHTML+=''+'\n';
如果(dblTotalValue>0){
strHTML+=''+'\n';
strHTML+=''+'\n';
strHTML+=''+'\n';
strHTML+=''+'\n';
strHTML+=''+'\n';
strHTML+=''+'\n';
}否则{
strHTML+='&euro;0,00'+'\n';
}
strHTML+=''+'\n';
strHTML+=''+'\n';
container.innerHTML=strHTML;
}
函数UpdateAjaxFinished(){
如果(typeof(lngAjaxFinished)='undefined')lngAjaxFinished=0;
如果(typeof(lngAjaxToFinish)=‘未定义’)lngAjaxToFinish=1;
lngajax++;
如果(lngAjaxFinished>=lngAjaxToFinish)EndUserWait();//这将停止微调器
}
我们需要的代码就是您编写的代码。…我真的不知道应该放在这里的代码是什么。
:我们也不知道。。。如果您没有显示任何代码或指向该问题页面的链接,则没有人会显示;)我现在已经添加了相关代码