我现在正在一家wordpress商店工作,并试图实现一个货币转换器。因此,购物车表中是可用货币的下拉列表。
单击时,价格应以该货币显示。足够简单...
以下是带有列表的 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。
我用谷歌搜索了很多,尝试了不同的东西,但无济于事。 我会在这里提供任何帮助。
我不确定这是否是您代码中唯一的问题,但它肯定是一个:传递给 PHP 的数据中的货币值没有键。要传递的正确数据将是:
data: {
action: 'get_conversion',
currency: currency
},
有了这个,PHP 现在应该能够访问$_POST['currency']
来获取货币值,除非有其他问题。