简体   繁体   English

在 Ajax 成功函数中没有得到响应

[英]Not getting the response in Ajax success function

I am new in PHP and WordPress.我是 PHP 和 WordPress 的新手。 Here I am using Ajax call to submit the the information of form and in response I want a Thank you message that is in <div> section.在这里,我使用 Ajax 调用来提交表单信息,作为回应,我想要在<div>部分中的感谢消息。 In this code I am able to execute the function that is in function.php but not getting the response back.在这段代码中,我能够执行 function.php 中的函数,但无法返回响应。 Is there any problem with the function or wordpress insert query?功能或wordpress插入查询有问题吗? Can you tell me what mistake am I doing?你能告诉我我做错了什么吗? Please help me.请帮我。 Thank you in advance.先感谢您。

<script type="text/javascript">
    $('#reg-form').submit(function () {
        var name = $('#name').val();
        var email = $('#signup-email').val();
        var password = $('#password').val();
        jQuery.ajax({
            url: ajaxurl,
            type: "POST",
            dataType: 'json',
            data: {
                'action': "registration",
                'name': name,
                'email': email,
                'password': password
            },
            success: function (response) {
                alert("hi");
                $("#signup-thanks").show();
                $("#signup").hide();

            }
        });
    });
</script>

<div class="col-sm-5 " style="margin-top: 1em" >
    <div id="signup">
        <form id="reg-form" method="post" >
            <div class="row">
                <div class="col-sm-offset-1 col-sm-10 form-group col-xs-offset-1 col-xs-10" id="form">
                    <input type="text" class="form-control form-text" id="name" name="organization_name" placeholder="name of NGO" required  >
                </div>
            </div>
            <div class="row">
                <div class="col-sm-offset-1 col-sm-10 form-group col-xs-offset-1 col-xs-10" id="form">
                    <input type="email" class="form-control form-text" id="signup-email" name="email" placeholder="email" required  >
                </div>
            </div>
            <div class="row">
                <div class="col-sm-offset-1 col-sm-10 form-group col-xs-offset-1 col-xs-10 " id="form">
                    <input type="password" class="form-control form-text" id="password" name="password" placeholder="password" required=""  />
                </div>
            </div>

            <div class="row">
                <div class="col-sm-offset-1 col-sm-10 col-xs-offset-1 col-xs-10" id="btnn">
                    <button class="btn btn-success button-def form-text btn-font "  id="registration" type="submit" name="go">Sign Up Free</button>
                </div>
            </div>

        </form>
    </div>
    <div class=" row" id="signup-thanks">
        <div class="col-sm-offset-1 col-sm-10 col-xs-offset-1 col-xs-10 signup-thanks-box " style="text-align: center; display: none;">
            <p class=" thanks-font"  style="font-size: 32px;">Thanks for signing up.</p>

            <p class="font-body"> This means we'll work harder so you can start using this product.</p>
        </div>
    </div>

function registration()
{
    global $wpdb;
    $name = $_POST['name'];
    $email = $_POST['email'];
    $password = $_POST['password'];
    try
    {
        $b = $wpdb->query("INSERT INTO `wp_registration`(`reg_ngo_name`, `reg_email_id`, 'reg_password') VALUES ('$name', '$email', '$password')");
        // $wpdb->insert( 'wp_registration', array('reg_ngo_name' => $name, 'reg_email_id' => $email, 'reg_password' => $password) , array( '%s', '%s', '%s') );
        print json_encode($b);
    }
    catch (Exception $e)
    {
        print json_encode("error occured" . $e);
    }
    exit();
}

add_action('wp_ajax_registration', 'registration');
add_action('wp_ajax_nopriv_registration', 'registration');

I have replaced your jquery & functions.php code with my simple code.我已经用我的简单代码替换了你的 jquery & functions.php 代码。

I hope this will solve your problem.我希望这能解决你的问题。

jQuery Code jQuery 代码

<script type="text/javascript">
$('button#registration').click(function(e) {
    e.preventDefault();
    var name = $('#name').val();
    var email = $('#signup-email').val();
    var password = $('#password').val();
    var data = {
                'action': 'registration',
                'name': name,
                'email': email,
                'password': password
                };
    var ajaxurl = "<?php echo admin_url('admin-ajax.php'); ?>";
    jQuery.post(ajaxurl, data, function (response) {
        alert("hi");
        $("#signup-thanks div").show();
        $("#signup").hide();
    });

});

</script>

And this is your functions.php code.这是您的functions.php 代码。

function registration(){  
    global $wpdb;
    $name = $_POST['name'];
    $email = $_POST['email'];
    $password = $_POST['password'];
    $table_name = $wpdb->prefix . 'registration';
    $sql = "INSERT INTO $table_name (reg_ngo_name,reg_email_id,reg_password) VALUES 
            ('".$name."', '".$email."','".$password."')";
    $wpdb->query($sql);
    exit;
}
add_action('wp_ajax_registration', 'registration');
add_action('wp_ajax_nopriv_registration', 'registration');

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM