在Ajax Wordpress注册表单上添加所需的复选框

时间:2015-08-03 23:01:49

标签: php wordpress

我正在研究一个使用ajax作为自定义前端注册表单的主题。对此,我正在尝试集成条款和条件所需的复选框。但是,在尝试获取是否选中复选框的值时,我会拉空白。我确定它与我如何使用ajax有关。

我的名字和值设置复选框:

<input type="checkbox" name="agreement" value="1" id="agreement">I agree to Terms & Conditions.

然后我将变量分配给我的ajax表单:

function ajax_register_form(){           
        check_ajax_referer( 'register_ajax_nonce','security-register');   
        $user_email  =   trim( $_POST['user_email_register'] ) ;
        $user_name   =   trim( $_POST['user_login_register'] ) ;
        //add checkbox requirement
        $user_agreement   =   trim ( $_POST['agreement'] );

        if (preg_match("/^[0-9A-Za-z_]+$/", $user_name) == 0) {
            print __('Invalid username( *do not use special characters or spaces ) ','wptheme');
            die();
        }

然后我为我的要求设定了条件:

    if( $user_agreement  == ''  ) { 
        print __('Please agree to the Terms & Conditions.','wptheme');
        exit();
    }

电子邮件和用户名变量工作正常。我以为我可以创建一个条件,如果选中则具有值,如果未选中则没有值。然而,无论如何,它总是没有价值。我也尝试将输入值设置为“同意”等其他内容。

任何指导都会有所帮助。

更新

我认为这是我错过的部分因为我没有使用ajax很多我错过了jquery组件。我还需要在这里注册我的变量复选框,对吗?

function wptheme_register (){
   var  user_login_register =  $('#user_login_register').val(); 
   var  user_email_register =  $('#user_email_register').val(); 
   var  nonce               =  $('#security-register').val();
   var agreement = $('#agreement').val();
   var  ajaxurl             =   control_vars.admin_url+'admin-ajax.php'; 


    $.ajax({
    type: 'POST', 
    url: ajaxurl,
    data: {
        'action'                    :   'ajax_register_form',
        'user_login_register'       :   user_login_register,
        'user_email_register'       :   user_email_register,
        'security-register'         :   nonce,
        'agreement' : agreement

    },

1 个答案:

答案 0 :(得分:0)

我让这个工作,主要是因为上面的Shehary指导和一些调整。

我将jquery var设置为:

var agreement = ( $("#agrement").is(':checked') ) ? 1 : 0;

我的条件是:

if( $user_agreement  == '0'  )

感谢Stackoverflow!