需要帮助转换ajax和php for wordpress

时间:2016-11-08 12:38:29

标签: php jquery ajax wordpress

从指南中我已经走到了这一步:

add_action('wp_enqueue_scripts', 'do_enqueue_scripts');

function do_enqueue_scripts() 
{
    wp_enqueue_script('Java', plugins_url( '/js/form.js', __FILE__ ),      array('jquery'), '1.0', true);

    wp_localize_script( 'Java', 'start', array(
        'code' => admin_url( 'admin-ajax.php' )
    ));
}

add_action('wp_ajax_nopriv_func', 'func');
add_action('wp_ajax_func', 'func');

function func() 
{
    $From = $_POST['dateTo'];
    $To = $_POST['dateFrom'];
    $Name = $_POST['Name'];
    echo $From . " - " . $To . " - " . $Name;
    die();
}
$("#form").on('submit',(function(e) {
    e.preventDefault();
    $.ajax({
        url: start.code, 
        type: "POST",       
        data: new FormData(this), 
        contentType: false,      
        cache: false,           
        processData:false,      
        success: function(data) {
            alert(data);
        }
    });
}));

我的问题来自于AJAX调用。我仍然习惯了WordPress正在使用的这个动作系统,我不确定我需要将我的数据更改为。我有一个包含2个日期和名字的通用表格;什么都不疯狂但是,返回到我的AJAX调用的数据为零。

我相信我现在的问题是如何将数据返回到我的ajax或者将数据类型发送到我的PHP函数func()

chrome或mozilla控制台没有错误。

1 个答案:

答案 0 :(得分:1)

使用操作名称向表单添加隐藏的输入字段,以便wp可以执行正确的功能

<input type="hidden" name="action" value="func">

将您的ajax更改为:

$("#form").on('submit',(function(e) {
    e.preventDefault();
    $.ajax({
        url: start.code, 
        type: "POST",       
        data: $(this).serialize(),   
        cache: false,           
        success: function(data) {
            alert(data);
        }
    });
}));