Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/367.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/273.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 当我在末尾使用die()时,ajax函数输出一个“0”_Javascript_Php_Jquery_Ajax_Wordpress - Fatal编程技术网

Javascript 当我在末尾使用die()时,ajax函数输出一个“0”

Javascript 当我在末尾使用die()时,ajax函数输出一个“0”,javascript,php,jquery,ajax,wordpress,Javascript,Php,Jquery,Ajax,Wordpress,我有一个php页面,正在进行几个ajax调用。进行第一个ajax调用,成功后激活第二个ajax函数。每个函数的末尾都有一个骰子。无论我做什么,die都会不断向屏幕输出0。我试着对第一个ajax函数的死区进行注释,但当我这样做时,它从未处理ajax请求。加载的gif一直在旋转。当我在第二个函数中注释掉骰子时,它两次输出0。我不知道为什么它一直在屏幕上打印 这是第一个函数 function json_info() { // The $_REQUEST contains all the da

我有一个php页面,正在进行几个ajax调用。进行第一个ajax调用,成功后激活第二个ajax函数。每个函数的末尾都有一个骰子。无论我做什么,die都会不断向屏幕输出0。我试着对第一个ajax函数的死区进行注释,但当我这样做时,它从未处理ajax请求。加载的gif一直在旋转。当我在第二个函数中注释掉骰子时,它两次输出0。我不知道为什么它一直在屏幕上打印

这是第一个函数

function json_info() {

    // The $_REQUEST contains all the data sent via ajax
    if ( isset($_REQUEST) ) {

    // create a new array to store projects
    $projectsArray = array();

    // get values for all three drop-down menus
    $status = $_REQUEST['status'];
    $industry = $_REQUEST['services'];
    $state = $_REQUEST['state'];

    // array of values for earch of the three drop-downs
    $statusAll = array('complete','incomplete');
    $industryAll = array('mining','textile','construction');
    $statesAll = array('sc','tx','wa');

    // set $statusArray dependent on whether or not "all" is selected
    if($status == "all") {
        $statusArray = array( 'key' => 'status', 'value' => $statusAll, 'compare' => 'IN');
    } else {
        $statusArray = array( 'key' => 'status', 'value' => $status, 'compare' => '=');
    }

    if($industry == "all") {
        $industryArray = array( 'key' => 'industry', 'value' => $industryAll, 'compare' => 'IN');
    } else {
        $industryArray = array( 'key' => 'industry', 'value' => $industry, 'compare' => '=');
    }

    if($state == "all") {
        $stateArray = array( 'key' => 'state', 'value' => $statesAll, 'compare' => 'IN');
    } else {
        $stateArray = array( 'key' => 'state', 'value' => $state, 'compare' => '=');
    }


        $pages = array(
            'post_type' => 'page',
            'orderby' => 'title',
            'order' => 'ASC',
            'paged' => $paged,
            'posts_per_page' => 5,
            'meta_query'    => array(
                                    'relation'      => 'AND',
                                    $statusArray,
                                    $industryArray,
                                    $stateArray,
                                        array(
                                        'key'       => '_wp_page_template',
                                        'value'     => 'template-individual-project.php',
                                        'compare'   => '='
                                    )
                                )
        );

        // query results by page template
        $my_query = new WP_Query($pages);
        $projectsArray = array();


        if($my_query->have_posts()) : 

                while($my_query->have_posts()) : 
                    $my_query->the_post(); 

                    $image = get_field('project_photo');
                    $image = $image['sizes']['thumbnail'];  

                    $projectsArray[] = array(
                    'title' => get_the_title(),
                    'lat' => get_field('latitude'),
                    'long' => get_field('longitude'),
                    'status' => get_field('status'),
                    'industry' => get_field('industry'),
                    'state' => get_field('state'),
                    'link' => get_permalink(),
                    'photo' => $image,
                    'num' => $paged
                    );  

            endwhile; endif;

            wp_reset_query();

         } // end of isset

         ?>

         <?php

         echo json_encode($projectsArray);

    // Always die in functions echoing ajax content
   die();
}

add_action( 'wp_ajax_json_info', 'json_info' );
add_action( 'wp_ajax_nopriv_json_info', 'json_info' );

我不确定我遗漏了什么或做错了什么导致0打印到屏幕上。

好吧,结果证明我是个白痴,我只是忽略了问题。还有第三个函数是由ajax调用的,我没有死在它的末尾。我认为这个问题出现在我的第二个函数中,因为0出现在我打印该内容的div中。

您可能不应该在wordpress中使用die,但您应该尝试只发布复制问题所需的代码,而不是将整个源代码转储到问题中。@adeneo我尝试更改为wp_die,但它仍然产生了0。在jsve中,我试图尽可能减少代码,但我担心可能会遗漏一些可能导致问题的内容;看看值是什么,我猜,因为你没有提到函数是否返回json?@David console.logajaxurl;去ajax功能的成功与否有关?我在那里试过了,但返回了url:。
function json_info2() {

    // The $_REQUEST contains all the data sent via ajax
    if ( isset($_REQUEST) ) {

    $paged = (get_query_var('paged')) ? get_query_var('paged') : 1;

    // get values for all three drop-down menus
    $status = $_REQUEST['status'];
    $industry = $_REQUEST['services'];
    $state = $_REQUEST['state']; 

    // array of values for earch of the three drop-downs
    $statusAll = array('complete','incomplete');
    $industryAll = array('mining','textile','construction');
    $statesAll = array('sc','tx','wa');

    // set $statusArray dependent on whether or not "all" is selected
    if($status == "all") {
        $statusArray = array( 'key' => 'status', 'value' => $statusAll, 'compare' => 'IN');
    } else {
        $statusArray = array( 'key' => 'status', 'value' => $status, 'compare' => '=');
    }

    if($industry == "all") {
        $industryArray = array( 'key' => 'industry', 'value' => $industryAll, 'compare' => 'IN');
    } else {
        $industryArray = array( 'key' => 'industry', 'value' => $industry, 'compare' => '=');
    }

    if($state == "all") {
        $stateArray = array( 'key' => 'state', 'value' => $statesAll, 'compare' => 'IN');
    } else {
        $stateArray = array( 'key' => 'state', 'value' => $state, 'compare' => '=');
    }


        $pages = array(
            'post_type' => 'page',
            'orderby' => 'title',
            'order' => 'ASC',
            'paged' => $paged,
            'posts_per_page' => 5,
            'meta_query'    => array(
                                    'relation'      => 'AND',
                                    $statusArray,
                                    $industryArray,
                                    $stateArray,    
                                        array(
                                        'key'       => '_wp_page_template',
                                        'value'     => 'template-individual-project.php',
                                        'compare'   => '='
                                    )
                                )
        );

        // query results by page template
        $my_query = new WP_Query($pages);

        if($my_query->have_posts()) : 

                while($my_query->have_posts()) : 
                    $my_query->the_post();  

                    ?>  


                    <li class="group">
                        <?php the_title(); ?>   
                    </li>

                    <?php

            endwhile;endif;

            wp_reset_query();

         } // end of isset

         ?>

         <?php

    // Always die in functions echoing ajax content
   die();
}

add_action( 'wp_ajax_json_info2', 'json_info2' );
add_action( 'wp_ajax_nopriv_json_info2', 'json_info2' );
function run_ajax() {
    // Get values from all three dropdown menus
        var state = $('#states').val();
        var markets = $('#markets').val();
        var services = $('#services').val();

        // This does the ajax request
        $.ajax({
            url: ajaxurl, 
            data: {
                'action' : 'json_info',
                'state' : state,
                'status' : markets,
                'services' : services
            },
            success:function(data) {
                // This outputs the result of the ajax request
                var jsonData = JSON.parse(data);
                do_ajax();
            }   /*,
            error: function(errorThrown){
                console.log(errorThrown);
            }*/
        }); // end of ajax call for json_info



        function do_ajax() {
            $.ajax({
                url: ajaxurl, 
                data: {
                    'action' : 'json_info2',
                    'state' : state,
                    'status' : markets,
                    'services' : services
                },
                success:function(moredata) {
                    // This outputs the result of the ajax request
                    $('#project-list').html( moredata );
                    $('#project-list').fadeIn();
                }/*,
                error: function(errorThrown){
                    var errorMsg = "No results match your criteria";
                    $('#project-list').html(errorMsg);
                }*/
            }); // end of ajax call
        } // end of function do_ajax
}