2015-06-19 125 views
2

我現在正在一個wordpress商店上試圖實現一個貨幣轉換器。所以在購物車表中是可用貨幣的下拉列表。Jquery變量返回null

點擊後,價格應該以該貨幣顯示。夠簡單了...

這裏是列表中的PHP的一部分:

<section class="currency-converter-form" style="display:none;"> 

     <p class="form-row form-row-wide" id="convert_to_field"> 
     <select name="currency" id="currency" class="currency_to" rel="convert_currency_to" > 
      <option value="gbp" >GBP - British Pound Sterling</option> 
      <option value="usd" >USD - US Dollar</option> 
      <option value="aud" >AUD - Australian Dollar</option> 
      <option value="cad" >CAD - Canadian Dollar</option> 
      <option value="jpy" >JPY - Japanese Yen</option> 
      <option value="nzd" >NZD - New Zealand Dollar</option> 
      <option value="rub" >RUB - Russian Ruble</option> 
      <option value="chf" >CHF - Swiss Franc</option> 
     </select> 
     </p> 

這是我作爲擁有jQuery的迄今:

jQuery(function($) { 

$(document).on('click', '.currency-converter-button', function() { 
    $('.currency-converter-form').slideToggle('slow'); 


    return false; 
}).on('change', function() { 

    var currency = $("#currency").val(); 

    console.log(currency); 

    jQuery.ajax({ 
    type: 'POST', 
    url: currency_conversion.ajaxurl, 
    data: { 
     action: 'get_conversion', 
     currency 
    }, 
    success: function (data, textStatus, XMLHttpRequest) { 
     alert(data); 
    }, 
    error: function (XMLHttpRequest, textStatus, errorThrown) { 
     alert(errorThrown); 
    } 
}); 

    });$('.currency-converter-form').hide(); 
}); 

這裏,目標php剛測試的東西:

add_action('wp_ajax_get_conversion', 'get_conversion'); 



function get_conversion() { 

$to = $_POST['currency']; 

echo json_encode($to);} 

我基本上試圖使用已經存在於wordpress中的代碼和調整它。我會很高興,如果警報會給我所選的貨幣,但它返回0.

我GOOGLE了很多,嘗試不同的事情無濟於事。我會在這裏接受任何幫助。

+0

你試過的東西有哪些? – Newd

+0

我用$ post方法試了一下。我試圖將值保存在一個數組變量中。我知道使用現有的代碼並對其進行調整並不能真正幫助我完全理解實質上正在發生的事情,但它似乎是最簡單和最快速的方式。 – mescaline

回答

1

我不確定這是否是您的代碼中唯一的問題,但它絕對是一種:傳遞給PHP的數據內部的貨幣值沒有密鑰。然後,將正確的數據傳遞將是:

data: { 
    action: 'get_conversion', 
    currency: currency 
}, 

有了這個,PHP現在應該能夠訪問$_POST['currency']除非有其他問題得到幣值。

+0

感謝您的建議。我知道現在的代碼很混亂。不幸的是,這個問題似乎在別處。 – mescaline