duanfan1869 2016-01-22 05:59
浏览 64
已采纳

没有进入wordpress的php功能

my problem is that when I click send this not entering the sendmail () function , should show alert, the ajax is the admin- ajax.php is good Request URL:http://localhost:8888/password/wp-admin/admin-ajax.php Request Method:POST Status Code:200 OK

HTML FORM:

<div class="form">
                            <form action="" method="POST"  id="ContactForm" enctype="application/x-www-form-urlencoded" novalidate="novalidate" >
                                <div class="form-group">    
                                    <input type="text" class="form-control" name="name" placeholder="Full Name *">
                                </div>
                                <div class="form-group">    
                                    <input type="text" class="form-control" name="email" placeholder="Email *">
                                </div>
                                <div class="form-group">    
                                    <input type="text" class="form-control" name="celular" placeholder="Celular o Teléfono">
                                </div>
                                <div class="form-group">
                                    <textarea rows="5" class="form-control" name="message" placeholder="Your Message *" style="height:175px;"></textarea>
                                </div>
                                <div id="loading_icon"><img src='<?php echo get_template_directory_uri(). '/images/loading_spinner.gif'; ?>' alt="loading" style="display: none;"></div>
                                <input class="btn btn-default" type="submit" name="submit" value="Enviar">
                                <div id="#response"></div>
                            </form>
                        </div>

ajax:

jQuery(document).ready(function($){
    $("#ContactForm").validate({
        rules: {
            name: "required",
            email: {
                required: true,
                email: true
            },
            celular: "required"
        },
        messages: {
            name: "Por favor digite su nombre",
            email: {
                required: "Por favor digite su correo",
                email: "Porfavor ingrese un email valido"
            },
            message: "Ingrese el asunto en el que le podemos ayudar",
            celular: "Digite su numero de celular o telefono"
        },
        submitHandler: function(form) {
            $('#loading_icon').show();
            $('#click').hide();
            var params = $(form).serialize();
            $.ajax ({
                type: 'POST',
                url: ajaxurl,
                data: params + '&action=sendmail',
                success: function(response) {
                    $('#response').hide();
                    $('#response').html(response);
                    $('#response').fadeIn('slow');
                    $('#loading_icon').hide();                      
                }
            });
        }

    });
});

PHP:

<?php 

/*
Plugin Name: Formulario de contacto
Plugin URI: http://www.e-world.co
Description: Formulario de contacto con ajax
Version: 1.0
Author: Jorge Moreno
Author URI: http://www.e-world.co
license: GLP2
*/

function frontend_custom_ajaxurl() { ?>
    <script type="text/javascript">
        var ajaxurl = '<?php echo admin_url('admin-ajax.php'); ?>';
    </script>
    <?php
  }
add_action('wp_head','frontend_custom_ajaxurl');



add_action('wp_ajax_sendmail', 'sendmail');
add_action('wp_ajax_nopriv_sendmail', 'sendmail');


    function sendmail() {
    echo '<script language="javascript">alert("se envió!!");</script>';
    }




 ?>
  • 写回答

2条回答 默认 最新

  • dongyou4411 2016-01-22 07:11
    关注

    You cannot run javascript function in the ajax file .. instead run the desired php code in ajaxfile

    <?php 
    add_action('wp_ajax_sendmail', 'sendmail');
    add_action('wp_ajax_nopriv_sendmail', 'sendmail');
    
    
        function sendmail() {
        echo 'alert_me';
        die;
        }
    
    ?>
    

    Then is the response you can perform the alerting functionality

        submitHandler: function(form) {
                    $('#loading_icon').show();
                    $('#click').hide();
                    var params = $(form).serialize();
                    $.ajax ({
                        type: 'POST',
                        url: ajaxurl,
                        data: params + '&action=sendmail',
                        success: function(response) {
                            $('#response').hide();
                            $('#response').html(response);
                            $('#response').fadeIn('slow');
                            $('#loading_icon').hide();  
                            if(reponse == 'alert_me'){
    alert('Alert your required string');
    }
                        }
                    });
                }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配
  • ¥15 Power query添加列问题
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 報錯:Person is not mapped,如何解決?
  • ¥15 c++头文件不能识别CDialog
  • ¥15 Excel发现不可读取的内容
  • ¥15 关于#stm32#的问题:CANOpen的PDO同步传输问题