jQuery变量返回null - php

我现在正在一家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,我会很高兴。

我在Google上搜索了很多,并尝试了不同的尝试,但没有成功。我会在这里寻求任何帮助。

参考方案

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

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

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

代码未在服务器目录php中创建文件 - php

我正在尝试使用以下代码将新文件写入服务器error_reporting(E_ALL); ini_set('display_errors', 1); if($_SERVER['REQUEST_METHOD'] == "POST") { $html = $_POST['html'];…

CodeIgniter更新查询被执行两次 - php

我正在使用CodeIgniter 2.2。每次访问页面时,我都必须用+1更新数据库。代码可以工作,但是每次都会增加+2。示例:如果是total views=2,则在单击页面后total views应该是3,但是数据库中的值是4。我确定我在控制器中仅调用一次模型add_one_to_view_image。控制者 function view(){ $view_i…

故障排除“警告:session_start():无法发送会话高速缓存限制器-标头已发送” - php

我收到警告:session_start()[function.session-start]:无法发送会话缓存限制器-标头已发送(错误输出开始如果我将表单数据提交到其他文件进行处理,则可以正常工作。但是,如果我将表单数据提交到同一页面,则会出现此错误。请建议<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0…

通过php表单修改我的xml文件 - php

这是我的xml文件和下面的php代码。我输入了一个输入类型,它将按名字搜索学生。然后将显示有关特定学生的信息,并且将显示另一个按钮更新。问题是我想在那之后修改信息。如何通过标签名称获取元素,以便可以修改有关特定学生的信息?<students> <student> <firstname>John</firstname&…

在ajax之后将页面内容复制到同一页面 - php

我有简单的注册公式,我希望首先使用ajax发送,而不刷新页面以控制是否插入正确的数据,然后仅重定向到其他页面。问题是,当我通过ajax将其发送到同一页面后,一切正常,但是页面内容重复,我可以看到两次...这是我的ajaxfunction registruj () { var name = $('#meno').val(); var pri…