Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/378.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 jqueryajax按钮不是';行不通_Javascript_Php_Jquery_Ajax - Fatal编程技术网

Javascript jqueryajax按钮不是';行不通

Javascript jqueryajax按钮不是';行不通,javascript,php,jquery,ajax,Javascript,Php,Jquery,Ajax,我对编写ajax和使用restful api非常陌生。。。所以,请容忍我 我有一个在后端使用的Laravel5.2RESTfulAPI,我尝试使用Jquery/Ajax加载一个类别列表。当您在类别中单击时,每个子类别都可以正常加载,但我似乎无法让“后退”按钮正常工作(我指的是我正在生成的LI,而不是浏览器后退按钮)。当您单击它时,它会显示警报-数据是正确的,但仅此而已。列表不会刷新并填充相应的项 编辑 也没有错误被抛出到javascript控制台。它不会从ajax调用中填充 编辑 我在发表原始帖

我对编写ajax和使用restful api非常陌生。。。所以,请容忍我

我有一个在后端使用的Laravel5.2RESTfulAPI,我尝试使用Jquery/Ajax加载一个类别列表。当您在类别中单击时,每个子类别都可以正常加载,但我似乎无法让“后退”按钮正常工作(我指的是我正在生成的LI,而不是浏览器后退按钮)。当您单击它时,它会显示警报-数据是正确的,但仅此而已。列表不会刷新并填充相应的项

编辑

也没有错误被抛出到javascript控制台。它不会从ajax调用中填充

编辑

我在发表原始帖子后立即删除了request.abort()

编辑

以下是从URL api/categories/4返回的JSON——作为示例

[{“id”:6,“parent”:4,“name”:“sub_subcat4_1”,“slug”:“sub_subcat4_1”,“description”:null,“created_at”:null,“updated_at”:null},{“id”:7,“parent”:4,“name”:“sub_subcat4_2”,“slug”:“sub sub_subcat4_2”,“description”:null,“created_at”:null,“updated_at”:null}]

编辑

下面是#类别的HTML

<div class="row">
<div class="col-sm-12">
    <ul id="categories">
    </ul>
</div>

Javascript文件

    <script>
    /*
     * This loads the default / root categories.
     */
    function getRootCategories() {
        $.getJSON("api/categories", function(data) {
            var categories = [];
            $("#categories").html("");
            $.each(data, function(key, val) {
                $("#categories").append("<li class='subcat' data-id='" + val.id + "' onClick='getSubcats(this);'>" + val.name + '</li>');
            });
        });
    }

    /*
     * This loads the sub categories if there's any data returned. Otherwise, just leave the user where they are.
     */
    function getSubcats(cat) {
        var dataID = cat.getAttribute("data-id");
        alert(dataID);
        if(dataID == "null") {
            getRootCategories();
        }
        else {
            $.getJSON("api/categories/" + dataID, function (data) {
                if (data.length != 0) {
                    $("#categories").html("");
                    var newCats = '';
                    var parent = '';
                    $.each(data, function (key, val) {
                        parent = "<li class='subcat' data-id='" + val.parent + "' onClick='getSubcats(this);'>Back</li>";
                        newCats += "<li class='subcat' data-id='" + val.id + "' onClick='getSubcats(this);'>" + val.name + '</li>';
                    });
                    $("#categories").append(parent + newCats);
                }
            });
        }
    }

    $(document).ready(function() {
        $.ajaxSetup({ cache:false });
        getRootCategories();
    });
</script>

/*
*这将加载默认/根类别。
*/
函数getRootCategories(){
$.getJSON(“api/类别”,函数(数据){
var类别=[];
$(“#类别”).html(“”);
$。每个(数据、函数(键、值){
$(“#categories”).append(“
  • ”+val.name+”
  • ); }); }); } /* *如果返回任何数据,则加载子类别。否则,请将用户留在原地。 */ 函数getSubcats(cat){ var dataID=cat.getAttribute(“数据id”); 警报(数据标识); 如果(数据ID==“空”){ getRootCategories(); } 否则{ $.getJSON(“api/categories/”+dataID,函数(数据){ 如果(data.length!=0){ $(“#类别”).html(“”); var newCats=''; var parent=''; $。每个(数据、函数(键、值){ parent=“
  • Back
  • ”; newCats+=“
  • ”+val.name+”
  • ; }); $(“#类别”)。追加(父项+新类别); } }); } } $(文档).ready(函数(){ $.ajaxSetup({cache:false}); getRootCategories(); });
    好的,我只是把变量都弄混了。我没有设置正确的家长id

    新脚本如下所示-

        <script>
        var previous = null;
        /*
         * This loads the default / root categories.
         */
        function getRootCategories() {
            $.getJSON("api/categories", function(data) {
                var categories = [];
                $("#categories").html("");
                $.each(data, function(key, val) {
                    $("#categories").append("<li class='subcat' data-parent='" + val.parent + "' data-id='" + val.id + "' onClick='getSubcats(this);'>" + val.name + '</li>');
                    previous = val.parent;
                });
            });
        }
    
        /*
         * This loads the sub categories if there's any data returned. Otherwise, just leave the user where they are.
         */
        function getSubcats(cat) {
            var dataID = cat.getAttribute("data-id");
            previous = cat.getAttribute("data-parent");
    
            if(dataID == "null") {
                getRootCategories();
            }
            else {
                $.getJSON("api/categories/" + dataID, function (data) {
                    if (data.length != 0) {
                        $("#categories").html("");
                        var newCats = '';
                        var parent = '';
                        $.each(data, function (key, val) {
                            parent = "<li class='subcat' data-id='" + previous + "' onClick='getSubcats(this);'>Back</li>";
                            newCats += "<li class='subcat' data-parent='" + val.parent + "' data-id='" + val.id + "' onClick='getSubcats(this);'>" + val.name + '</li>';
                        });
                        $("#categories").append(parent + newCats);
    
                    }
                })
                .fail(function(jqxhr, textStatus, error) {
                    console.log("Request Failed: " + textStatus + " - " + error);
                });
            }
        }
    
        $(document).ready(function() {
            $.ajaxSetup({ cache:false });
            getRootCategories();
        });
    </script>
    
    
    var-previous=null;
    /*
    *这将加载默认/根类别。
    */
    函数getRootCategories(){
    $.getJSON(“api/类别”,函数(数据){
    var类别=[];
    $(“#类别”).html(“”);
    $。每个(数据、函数(键、值){
    $(“#categories”).append(“
  • “+val.name+”
  • ”); previous=val.parent; }); }); } /* *如果返回任何数据,则加载子类别。否则,请将用户留在原地。 */ 函数getSubcats(cat){ var dataID=cat.getAttribute(“数据id”); previous=cat.getAttribute(“数据父级”); 如果(数据ID==“空”){ getRootCategories(); } 否则{ $.getJSON(“api/categories/”+dataID,函数(数据){ 如果(data.length!=0){ $(“#类别”).html(“”); var newCats=''; var parent=''; $。每个(数据、函数(键、值){ parent=“
  • Back
  • ”; newCats+=“