2015-06-19 95 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