WordPress Ajax成功,但功能似乎未运行

时间:2019-01-26 12:38:09

标签: php ajax wordpress

我已经使用谷歌搜索了一段时间,并尝试了许多方法(例如,将我的formName和formData嵌套在'data:'属性中,但这导致了parseerrors,所以我猜我很漂亮几乎可以正常工作了!我还删除了这些属性,并对函数中的项目进行了硬编码,但是问题仍然存在。

一切似乎都正常,并且我收到成功警报,但是当我检查数据库时,usermeta尚未更新。我也不知道调试PHP函数的最佳方法,因此将来的任何技巧都将很方便!

这是我的ajax函数,它会在模糊时触发:

function storeData(data) {   

    $.ajax({
        type: 'POST',
        formData: data,
        formName: 'Testform',
        action: 'storeApplicationData',

        success:function( data ) {
            console.log('stored form');
        },
        error: function(xml, error) {
            console.log(error);
        }
    });
    return false;
}

这是我的函数文件中的PHP代码,我已经硬编码了现在传递给update_user_meta的值,只是为了确保这不是问题:

function storeApplicationData(){
  update_user_meta('15', 'Testform', '12345678');
}
add_action('wp_ajax_storeApplicationData', 'storeApplicationData');
add_action('wp_ajax_nopriv_storeApplicationData', 'storeApplicationData');

我正在直接检查数据库,meta字段没有更新...

任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:0)

我发现了这一点,我没有为我的Ajax网址添加适当的后缀:

function theme_enqueue() {

    $theme_url  = get_template_directory_uri();     // Used to keep our Template Directory URL
    $ajax_url   = admin_url( 'admin-ajax.php' );        // Localized AJAX URL

    // Register Our Script for Localization
    wp_register_script( 'applications', "{$theme_url}/applicationform.js", array( 'jquery' ),'1.0', true);

    // Localize Our Script so we can use `ajax_url`
    wp_localize_script('applications','ajax_url',$ajax_url);

    // Finally enqueue our script
    wp_enqueue_script( 'applications' );
}
add_action( 'wp_enqueue_scripts', 'theme_enqueue' );

我还添加了:

url: ajax_url,

到我的ajax!