jQuery Ajax表单不适用于选择元素

时间:2014-03-19 18:39:24

标签: php jquery ajax wordpress forms

我似乎对jQuery和新创建的AJAX表单/函数有一个奇怪的问题。我对AJAX很陌生,所以请耐心等待。这是jQuery:

jQuery('#wpuf_new_post_form').submit(function(e) {

    e.preventDefault();

    var data2 = jQuery('#wpuf_new_post_form').serialize();

    var ajaxurl = '<?php echo admin_url('admin-ajax.php'); ?>';

    jQuery.ajax({
        type: 'POST',
        url: ajaxurl,
        data: data2 + '&action=savedata',
        success: function(resp) {
            if(!resp){ alert ('Failed!')}else{ alert(data2) }
        }
    });

});

上面的代码提交了我的#wpuf_new_post_form表单,序列化数据,然后将其传递给我的PHP函数:

add_action('wp_ajax_nopriv_savedata', 'my_ajax_save_form');
add_action('wp_ajax_savedata', 'my_ajax_save_form');

function my_ajax_save_form(){

    $my_post = array(
        'post_title'    => $_POST['wpuf_post_title'],
        'post_content'  => $_POST['wpuf_post_content'],
        'post_type'     => $_POST['wpuf_post_type'],
        'post_status'   => 'publish',
    );

    wp_insert_post($my_post);

    $this_post_ID = wp_insert_post($my_post);

    add_post_meta($this_post_ID, 'cf_user-timestamp',  $_POST['cf_user-timestamp']);
    add_post_meta($this_post_ID, 'cf_project-id',  $_POST['cf_project-id']);
    add_post_meta($this_post_ID, 'cf_bin-id',  $_POST['cf_bin-id']);
    add_post_meta($this_post_ID, 'cf_status',  $_POST['cf_status']);
    add_post_meta($this_post_ID, 'cf_schedule-date',  $_POST['cf_schedule-date']);
    add_post_meta($this_post_ID, 'cf_reply-url',  $_POST['cf_reply-url']);
    add_post_meta($this_post_ID, 'cf_from-user',  $_POST['cf_from-user']);

}

通过AJAX提交创建如上所示的post和post meta,效果很好。拒绝工作的唯一三个字段恰好是select形式元素。

他们是:

  • cf_project-ID
  • cf_bin-ID
  • cf_status

同样,如上所述的所有其他帖子元提交都很好地打到了数据库。它只是select表单元素值没有。

是否有更好的方法来处理select表单元素的序列化值?

PS:如果它有任何值,这里的序列化字符串的示例是作为jQuery变量data2传递的。如您所见,格式与其他任何提交的表单元素都不同:

_wpnonce=537e4539cc&_wp_http_referer=%2Fajax%2F&wpuf_post_title=1395254005136&wpuf_post_content=Testing&cf_user-timestamp=March+19th+2014%2C+11%3A33%3A25+am&cf_project-id=3797&cf_bin-id=3325&cf_status=-status-today&cf_schedule-date=03%2F21%2F2014&cf_reply-url=&cf_from-user=&wpuf_post_type=post&wpuf_post_new_submit=yes

1 个答案:

答案 0 :(得分:0)

看看你是否添加了&#39; name&#39; html中select元素的属性可能是问题。