wordpress内的AJAX只返回0

时间:2012-12-18 01:47:49

标签: ajax wordpress

一个例子是jsfiddle上的here(php文件位于css textarea中)。当您更改select#main_cat时,ajax会查找子类别并在select#sub_cat中输入它们。

唯一的问题是结果总是0.我不确定是什么问题。

任何帮助都是有效的!

的functions.php

function implement_ajax() {
    if(isset($_POST['main_catid'])) {
        $categories=  get_categories('child_of='.$_POST['main_catid'].'&hide_empty=0');
          foreach ($categories as $cat) {
            $option .= '<option value="'.$cat->term_id.'">';
            $option .= $cat->cat_name;
            $option .= ' ('.$cat->category_count.')';
            $option .= '</option>';
          }

          echo '<option value="-1" selected="selected">Scegli...</option>success'.$option;
        die();
    } // end if

}


add_action(‘wp_ajax_my_special_action’, ‘implement_ajax’);
add_action(‘wp_ajax_nopriv_my_special_action’, ‘implement_ajax’);

的index.php

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js" ></script>
<script>



$(function(){
            $('#main_cat').change(function(){
                    var $mainCat=$('#main_cat').val();

                    // call ajax
                     $("#sub_cat").empty();
                        $.ajax({
                            url:"/wp-admin/admin-ajax.php",
                            type:'POST',
                            data:'action=my_special_action&main_catid=61',// + $mainCat,

                             success:function(results)
                                 {
                                //  alert(results);
                $("#sub_cat").removeAttr("disabled");
                $("#sub_cat").append(results);
                $("#asdf").text(results);
                                        }
                                   });
                          }
                                    );
});




</script>
wp_dropdown_categories('show_count=0&selected=-1&hierarchical=1&depth=1&hide_empty=0&exclude=1&show_option_none=Main Categories&name=main_cat');
?>
<select name="sub_cat" id="sub_cat" disabled="disabled"></select>

1 个答案:

答案 0 :(得分:0)

试试这个:

$("#sub_cat").empty();
$.ajax({
    url : "/wp-admin/admin-ajax.php",
    type : 'POST',
    data : { // pass data as an objet
        action : 'my_special_action',
        main_catid : 61 // + $mainCat,
    },
    dataType : 'html', // specify html output
    success : function(results)
    {
        //  alert(results);
        $("#sub_cat").removeAttr("disabled");
        $("#sub_cat").append(results);
        $("#asdf").text(results);
    }
});