Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/88.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 在fancybox中使用AJAX调用_Jquery_Ajax_Fancybox - Fatal编程技术网

Jquery 在fancybox中使用AJAX调用

Jquery 在fancybox中使用AJAX调用,jquery,ajax,fancybox,Jquery,Ajax,Fancybox,我正在创建一个webshop,在其中我使用一个带有iframe的fancybox在webshop中单击产品的详细信息页面 在产品的详细信息页面中,您可以通过AJAX调用购买产品。该调用将购买发送到数据库并更新购物车金额 但是,我第一次单击buy按钮时,iframe只是刷新。从第二次开始,这个按钮就可以完美地工作,但是我不能再关闭fancybox了(无论是通过单击close按钮,还是通过使用代码)。我也没有遇到任何javascript错误,当自己打开产品详细信息页面(不是在fancybox中)时,

我正在创建一个webshop,在其中我使用一个带有iframe的fancybox在webshop中单击产品的详细信息页面

在产品的详细信息页面中,您可以通过AJAX调用购买产品。该调用将购买发送到数据库并更新购物车金额

但是,我第一次单击buy按钮时,iframe只是刷新。从第二次开始,这个按钮就可以完美地工作,但是我不能再关闭fancybox了(无论是通过单击close按钮,还是通过使用代码)。我也没有遇到任何javascript错误,当自己打开产品详细信息页面(不是在fancybox中)时,一切都很正常

由于我在任何地方都不会出错,而且没有fancybox,一切都可以正常工作,所以我真的不知道应该在这里放哪段代码

Fwiw我正在运行jquery版本1.8.3和fancybox版本1.3.4

编辑:以下是相关代码

打开我的fancybox的javascript函数

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?"> 
                €&nbsp;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">&nbsp;</td>
</tr>
<tr class="Normal_Text_1">           
    <td>€&nbsp;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?"> 
                €&nbsp;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">&nbsp;</td>
</tr>
<tr class="Normal_Text_1">           
    <td>€&nbsp;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>&euro;&nbsp;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();//这将停止微调器 }
我们需要的代码就是您编写的代码。
…我真的不知道应该放在这里的代码是什么。
:我们也不知道。。。如果您没有显示任何代码或指向该问题页面的链接,则没有人会显示;)我现在已经添加了相关代码