2015-09-24 52 views
0

我有一個按鈕,我想重新加載點擊。但只有按鈕應該重新加載,而不是頁面的其餘部分。刷新按鈕時,點擊它

的按鈕看起來是這樣的:

<a href="{$module_data.GM_PRODUCTS_BUTTON_BUY_NOW_URL}" id="click{php}echo ''.$counter.'';{/php}" class="addcart button_green button_set action_add_to_cart"{if $module_data.PRODUCTS_NAME != ''} title="{$module_data.PRODUCTS_NAME|replace:'"':'&quot;'} {$txt.text_buy}"{/if} 
onclick="return checkAddToCart(event, '{$module_data.QTY_DATA.ID}', {$product_stock}, {$product_max_order}, {$module_data.PRODUCTS_ID}, {php}echo $row['customers_basket_quantity']{/php}, {php}echo "'click".$counter."'";{/php});"> 
    <span class="button-outer"> 
     <span class="button-inner">{$button.add_to_cart}</span> 
    </span> 
</a> 

現在我告訴的JavaScript echo "'click".$counter."'";是clickId的。 我想以後的事重裝上點擊我的頁面:

function checkAddToCart(event, tid, stock, maxallowed, pid, pquantity, clickid) 
{ 
    var clickid_string = clickid.toString(); 
    var bought = Number($("#"+tid).val()); 
    stock = Number(stock); 
    maxallowed = Number(maxallowed); 
    var ans = (bought>stock) || (bought > maxallowed); 

    if(ans) 
    { 
     event.stopPropagation(); 
     event.preventDefault(); 
     alert("Maximale Bestellmenge: " + Math.min(maxallowed, stock)); 
    } 
    else { 
     $("#"+clickid_string).load("#"+clickid_string); 
    } 

    return !ans; 
} 

它不工作,和我是絕對不知道爲什麼。由ay,我的系統與SMARTY tpl一起工作。

+0

您是否在控制檯中看到任何錯誤? 「checkAddToCart」中的第一個例子是'console.log(event,tid,stock,maxallowed,pid,pquantity,clickid)'的輸出是什麼?這個功能是否被解僱? –

+0

輸出爲: (事件, 'gm_attr_calc_qty_38',883,8,38, 'CLICK1') 的 「CLICK1」 前的數字只有當你已經點擊該按鈕出現一次。這就是爲什麼我想點擊重新加載它。在每次點擊這個數字(您購物車中獲得的數量)必須在那裏更新。 在控制檯中沒有錯誤,但不是重新加載它顯示我一個頁面,有一個奇怪的小圖標移動。這很奇怪。 –

回答

0

如果你想運行一個PHP腳本點擊一個按鈕,你需要學習Ajax。 Ajax只是一種使用javascript的簡單方法,可以在後臺運行頁面而無需重新加載當前頁面。

<span class="button-outer" onClick="addDataToDB(this);">...</span> 
<script> 
function addDataToDB(el) { 
    var elem = $(el); 
    /* GET ALL YOUR DATA*/ 
    var name = ... 

    /* Create an AJAX request to your phpfunction */ 
} 
</script> 

查看youtube中的一些教程。