Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/247.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Ajax查询字符串条件_Javascript_Php_Ajax_Wordpress_Query String - Fatal编程技术网

Javascript Ajax查询字符串条件

Javascript Ajax查询字符串条件,javascript,php,ajax,wordpress,query-string,Javascript,Php,Ajax,Wordpress,Query String,我创建了一个登录页面,使用ajax登录用户并验证凭据 如果用户已被禁用,则我希望显示一条消息,说明该用户已被禁用。当我通过jquery发布时,我会发布到一个名为admin-ajax.php的页面 如果用户被禁用,则返回url为/wp login?disabled=1 如何修改脚本以查看GET是否已禁用,如果已禁用,则更改按钮文本 jQuery('#wp-submit').on( 'click',function(){ var clicked = jQuery(this);

我创建了一个登录页面,使用ajax登录用户并验证凭据

如果用户已被禁用,则我希望显示一条消息,说明该用户已被禁用。当我通过jquery发布时,我会发布到一个名为admin-ajax.php的页面

如果用户被禁用,则返回url为/wp login?disabled=1 如何修改脚本以查看GET是否已禁用,如果已禁用,则更改按钮文本

jQuery('#wp-submit').on( 'click',function(){

    var clicked = jQuery(this);


    clicked.val('Logging In...');

    var commit = clicked.parent().parent().serialize();

    var data = {
        action: 'ts_dash_action',
        screen: 'sign_on',
        param: { form : commit
           /* log: 'admin', pwd: 'pass','wp-submit': 'Log In',redirect_to: 'http:/.beresponsive.net',testcookie:1*/
        }};

    jQuery.post(dash_ajax.ajaxurl, data, function(response) {
        //clicked.val(response);
        if(response == 'Error - Retry') {
            clicked.addClass('button-error');
            setTimeout(function(){
                clicked.val('Login');
                clicked.removeClass('button-error');
            },2000);
        } else if(response == 'Redirecting...'){
            window.location.origin = window.location.protocol + "//" + window.location.hostname + (window.location.port ? ':' + window.location.port: '');
            window.location = window.location.origin;
        } else if ([THE GET HAS A PARAMATER OF 'DISABLED']) {     
                clicked.addClass('button-error');
                clicked.val('Email no valid')
        } 

    });
    return false;
}); 

这是页面,被禁用的帐户是username:dis,pass:dis

实际上,您无法在jquery ajax响应上处理302个重定向。您需要为wordpress的ajax登录编写自己的代码

functions.php中

add_action( 'init', 'custom_ajax_login' );

function custom_ajax_login() {

    wp_register_script( 'ajax-login-js', plugin_dir_url( __FILE__ ) . 'js/ajax-login.js', array('jquery') );

    wp_enqueue_script( 'ajax-login-js' );

    wp_localize_script( 'ajax-login-script', 'dash_ajax', array(
        'ajaxurl' => admin_url( 'admin-ajax.php' ),
        'redirecturl' => home_url()
    ));

    add_action( 'wp_ajax_nopriv_ajaxlogin', 'ajax_login' );
}

function ajax_login() {
    check_ajax_referer( 'ajax-login-nonce', 'security' );
    $login_form_data = array();
    $login_form_data['user_login'] = $_POST['username'];
    $login_form_data['user_password'] = $_POST['password'];
    $login_form_data['remember'] = true;

    $user_data = wp_signon( $login_form_data, false );

    if ( is_wp_error( $user_data )) {
        $response = array(
            'loggedin'=> false,
            'message'=> $user_data->get_error_message()
        );
    } else {
        $response = array(
            'loggedin'=> true,
            'message'=> __('Login success!' )
        );
    }
    echo json_encode( $response );

    die();
}
在您的
ajax login.js

jQuery(document).ready(function($){

    $('#login_form').on('submit', function(e){
        $('#login_form p.status').show().text("Sending request...");
        $.ajax({
            type: 'POST',
            dataType: 'json',
            url: dash_ajax.ajaxurl,
            data: { 
                'action': 'ajaxlogin', //calls wp_ajax_nopriv_ajaxlogin
                'username': $('#username').val(), 
                'password': $('#password').val(), 
                'security': $('#security').val() },
            success: function(data){
                $('#login_form p.status').text(data.message);
                if (data.loggedin == true){
                    document.location.href = dash_ajax.redirecturl;
                }
            }
        });
        e.preventDefault();
    });
});

最简单的方法是添加另一个条件,这样,如果它不是这两个条件中的任何一个,那么它必须是第三个选项。虽然我不容易发现它,但我可以排除它

jQuery('#wp-submit').on( 'click',function(){

    var clicked = jQuery(this);


    clicked.val('Logging In...');

    var commit = clicked.parent().parent().serialize();

    var data = {
        action: 'ts_dash_action',
        screen: 'sign_on',
        param: { form : commit
           /* log: 'admin', pwd: 'pass','wp-submit': 'Log In',redirect_to: 'http:/.beresponsive.net',testcookie:1*/
        }};

    jQuery.post(dash_ajax.ajaxurl, data, function(response) {
        //clicked.val(response);
        if(response == 'Error - Retry') {
            clicked.addClass('button-error');
            setTimeout(function(){
                clicked.val('Login');
                clicked.removeClass('button-error');
            },2000);
        } else if(response == 'Redirecting...'){
            window.location.origin = window.location.protocol + "//" + window.location.hostname + (window.location.port ? ':' + window.location.port: '');
            window.location = window.location.origin+'/edit-profile/';
        } else {     
                clicked.addClass('button-error');
                clicked.val('Email not confirmed')
        } 

    });
    return false;
});