Jquery变量返回null

时间:2015-06-19 19:12:11

标签: php jquery wordpress

我正在开发一个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.

我搜索了很多东西并尝试了不同的东西但无济于事。我会在这里找到任何帮助。

1 个答案:

答案 0 :(得分:1)

我不确定这是否是您代码中唯一的问题,但它绝对是一个问题:传递给PHP的数据中的货币值没有密钥。然后传递的正确数据将是:

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

有了这个,PHP现在应该能够访问$_POST['currency']以获取货币值,除非存在其他问题。