我正在研究一个使用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
},
答案 0 :(得分:0)
我让这个工作,主要是因为上面的Shehary指导和一些调整。
我将jquery var设置为:
var agreement = ( $("#agrement").is(':checked') ) ? 1 : 0;
我的条件是:
if( $user_agreement == '0' )
感谢Stackoverflow!