完成AJAX后AJAX文件上传到PHP - 缺少链接

时间:2015-09-04 23:14:41

标签: javascript php jquery ajax wordpress

这是一个使用Gravity Forms的Wordpress安装我很清楚,但我想要做的是获取隐藏输入的值并在PHP脚本中使用它来获取更多数据。

JS CODE:http://pastebin.com/5FFf4ESb

jQuery(function($){

$(document).bind('gform_post_render', function(event, form_id){

    if (form_id == 1) {


        var uploader = $("#gform_drag_drop_area_1_1");

    var uploads = $("#gform_uploaded_files_1").val();

     alert(uploads);

    uploader.on("drop", function() {  

    $.ajax({
    url: mp3_object.ajaxurl,
    async: true,
    type: "POST",
    data: {
    action : 'ajax_mp3',
    files : uploads, 
    },

    success: function(response) {
        //results = jQuery.parseJSON(response);
        alert(response);
    }
});

});




        }



    });



});

PHP代码:http://pastebin.com/H2Cd1Dfd

function enqueue_mp3_scripts_init($form, $is_ajax) {
     if ( $is_ajax ) {
    wp_enqueue_script( 'mp3-script', plugin_dir_url(__FILE__) . 'js/scripts.js', array('jquery'), 1.0 ); // jQuery will be included automatically
    wp_localize_script( 'mp3-script', 'mp3_object', array( 'ajaxurl' => admin_url( 'admin-ajax.php' ) ) ); // setting ajaxurl
     }
    }

add_action('gform_enqueue_scripts', 'enqueue_mp3_scripts_init', 10, 2);

function ajax_mp3_func() {


    if( isset($_POST['files']) )  {

    echo $_POST['files'];               
    }

die(); // stop executing script
}

add_action( 'wp_ajax_ajax_mp3', 'ajax_mp3_func' ); // ajax for logged in users
add_action( 'wp_ajax_nopriv_ajax_mp3', 'ajax_mp3_func' ); // ajax for not logged in users

我遇到的问题是文件上传使用了plupload AJAX请求并且它与我的JS代码异步执行所以我的代码在设置隐藏字段var uploads的值之前触发,并且在通过我发送之前它返回空对PHP文件的AJAX请求。

我不太了解AJAX,知道在设置隐藏值后如何隔离和运行我的AJAX请求。

0 个答案:

没有答案