WordPress

jquery — Lista rozwijana kategorii wielu poziomów na trzech poziomach nie działa

  • 11 sierpnia, 2017
  • 3 min read
jquery — Lista rozwijana kategorii wielu poziomów na trzech poziomach nie działa


Mam trzy listy rozwijane w kaskadzie, używam kodu Jána Bočíneca, ale działa tylko na pierwszym poziomie, kiedy wybieram klasę, nie działa, powinna włączyć trzecią listę rozwijaną i pokazać grupy.

Kiedy wybieram szkołę, nie ma problemu, drugie menu rozwijane działa dobrze, ale kiedy wybieram klasę, trzecie menu rozwijane nie działa

wprowadź tutaj opis obrazu

Widzę, że jQuery('#parent_grado').change nie działa, nie wiem, czy jest, ponieważ jest tworzony dynamicznie.

Czy możesz mi pomóc znaleźć błąd lub doradzić mi, czy jest to możliwe, w jaki sposób próbuję stworzyć stronę internetową mojej szkoły dzięki

To jest mój zmodyfikowany kod

<?php
 //Parent child con ajax

 function parent_child_cat_select() { ?>
    <script type="text/javascript">
        /* <![CDATA[ */
    jQuery(document).ready(function() {

        //segundo drop down
        jQuery('#parent_grado').change(function(){
            var parentgrado=jQuery('#parent_grado').val();
            alert("hola");
            // call ajax
            jQuery.ajax({
                url:'/dentrorealdelvalle/wp-admin/admin-ajax.php',
                type:'POST',
                data:'action=category_select_action&nameid=parent_grupo&parent_cat_ID=' + parentgrado,
                success:function(results)
                {
                    jQuery("#sub_grupo_div").html(results);
                }
            })
        });

//primer drop down
        jQuery('#parent_cat').change(function(){
            var parentCat=jQuery('#parent_cat').val();              
            // call ajax
            jQuery.ajax({
                url:'/dentrorealdelvalle/wp-admin/admin-ajax.php',
                type:'POST',
                data:'action=category_select_action&nameid=parent_grado&parent_cat_ID=' + parentCat,
                success:function(results)
                {
                    jQuery("#sub_cat_div").html(results);
                }
            })
        });



    });


    /* ]]> */
</script>

<form action="<?php bloginfo('url'); ?>/" method="get">

    <div id="parent_cat_div"><?php 
    $terms=get_terms('grupos',
        array(
            'hide_empty' => false,
            'parent' => 0,
        )
        );
        $datosparent="";
    echo '<select id="parent_cat" name="escuelas">';
        // Get categories as array  
         echo '<option disabled selected value> -- Seleccione Escuela -- </option>';
        foreach ( $terms as $term ) :
            echo '<option value="' . $term->term_id . '">' . $term->name . '</option>';
            $datosparent=$datosparent . ',' . $term->term_id;
        endforeach;
    echo '</select>';
     ?></div>       

    <div id="sub_cat_div"><select name="sub_cat_disabled" id="parent_grado" disabled="disabled"><option>Seleccione grado!</option></select></div>

    <div id="sub_grupo_div"><select name="sub_grupo_disabled" id="parent_grupo" disabled="disabled"><option>Seleccione grupo!</option></select></div>

    <div id="submit_div"><input type="submit" value="View" /></div>

</form>
<?php }

//Primer dropdown grado

function implement_ajax() {
    $parent_cat_ID = $_POST['parent_cat_ID'];
    $nameid = $_POST['nameid'];
    if ( isset($parent_cat_ID) )
    {
        $terms=get_terms('grupos',
        array(
            'hide_empty' => false,
            'parent' => $parent_cat_ID,
        )
        );      
    if ( $terms ) {
            echo '<select id="' . $nameid . '" name="grado">';
            // Get categories as array
            echo '<option disabled selected value> -- Seleccione Grado -- </option>';
            foreach ( $terms as $term ) :
                echo '<option value="' . $term->term_id . '">' . $term->name . '</option>';
            endforeach;
            echo '</select>';

    } else {
        ?><select name="sub_cat_disabled" id="sub_cat_disabled" disabled="disabled"><option>No child categories!</option></select><?php
    }
    die();
} // end if
}
add_action('wp_ajax_category_select_action', 'implement_ajax');
add_action('wp_ajax_nopriv_category_select_action', 'implement_ajax');//for users that are not logged in.

Dzięki za pomoc

Warto przeczytać!  wordpress.org — Nie można utworzyć nowych stron w wordpress


Źródło