HTML获胜't使用javascript和AJAX进行追加

HTML won't append using javascript and AJAX

本文关键字:AJAX 追加 javascript 使用 获胜 HTML      更新时间:2023-09-26

我正试图从数据库中获取数据,并将其发布在无序列表中。我使用的是JavaScript和PHP。

我有一个按钮,它将在JavaScript中执行一个函数。此函数将从数据库中获取一些数据,并在执行数据库中的查询后附加HTML代码。

我进行了检查,以确保代码正在从数据库中获取数据。当我不使用.html().append()函数并对数据进行硬编码时,它将像不使用隐藏类一样工作。当我将函数放入变量本身时,如下所示,它将显示为[Object Object],但实际数据不会附加在列表上。

以下是HTML和JavaScript代码:

function inventoryMenu(){
   var confirmModal = $(
       '<div class="modal fade">' +
           '<div class="modal-dialog">' +
           '<div class="modal-content">' +
           '<div class="modal-header bg-default">' +
               '<div class="container-fluid bodycontent">'+
               '<h1>Inventory</h1>'+
               '<h4><u> Product Control </u></h4>'+
               '<ul>'+
                   '<div class="container-fluid bodycontent">'+
           // '<div class="col-xs-12 col-sm-12 col-md-2 bg-menu mainmenu"></div>'+
           // '<div class="col-xs-12 col-sm-12 col-md-3 dashMain">'+
               '<br>'+
               '<br>'+
               '<ul id="mainDHMenu">'+
               '</ul>'+
           '</div>'+
       '</div>'+
       '<div class="row subDH">'+
      // '<div class="col-xs-12 col-sm-12 col-md-2 bg-menu mainmenu"></div>'+
           '<div class="col-xs-12 col-sm-12 col-md-2 bg-menu procategory">'+
               '<ul class="procategory">'+
                   $.post('controllers/pc_productcontrol_c.php', {action: "loadProCategory"}, function (e) {
                       console.log("In the loadProCategory function");
                       console.log("loadProCategory function post data: " + e);
                       if (e === undefined || e.length === 0 || e === null) {
                           console.log("No meny items in the loadProCategory function");
                            menudata += '<li><a href="#"> No Menu Item Found </a></li>';
                       } else {
                           $.each(e, function (index, qd) {
                               console.log("In the each post function");
                               console.log("Each post function data: pcat_id: " + qd.pcat_id + " pcat_name: " + qd.pcat_name);
                               '<li class="pctrlmenuitem" id="pc_' + qd.pcat_id + '"><a href="#">' + qd.pcat_name + '<pcat_id class="">' + qd.pcat_id + '</pcat_id><pcat_name class="">' + qd.pcat_name + '</pcat_name></a><i class="fa fa-arrow-right pull-right"></i></li>';
                               // menudata += '<li class="pctrlmenuitem" id="pc_' + qd.pcat_id + '"><a href="#">' + qd.pcat_name + '<pcat_id class="">' + qd.pcat_id + '</pcat_id><pcat_name class="">' + qd.pcat_name + '</pcat_name></a><i class="fa fa-arrow-right pull-right"></i></li>';
                               // $('.procategory').html('').append(menudata);
                           });
                       }
                       // menudata += '<li class="pull-right" id="addProCategory"><i class="fa fa-lg fa-plus"></i></li>';
                       // menudata += '</ul>';
                       // console.log("Menudata: 'n" + menudata);
                       // console.log($('.procategory').html('').append(menudata));
                   }, "json")+
                   // '<li class="pctrlmenuitem" id="pc_44"><a href="#">Category 1<pcat_id class="hidden">44</pcat_id><pcat_name class="hidden">Category 1</pcat_name></a><i class="fa fa-arrow-right pull-right"></i></li>'+
               '</ul>'+
           '</div>'+
           '<div class="col-xs-12 col-sm-12 col-md-5">'+
               '<div class="col-xs-12 col-sm-12 col-md-3 bg-menu items"></div>'+
               '<div class="col-xs-12 col-sm-12 col-md-3 bg-menu subItems1 hidden"></div>'+
               '<div class="col-xs-12 col-sm-12 col-md-3 bg-menu subItems2 hidden"></div>'+
               '<div class="col-xs-12 col-sm-12 col-md-3 bg-menu subItems3 hidden"></div>'+
               '<div class="col-xs-12 col-sm-12 col-md-3 bg-menu subItems4 hidden"></div>'+
               '<div class="col-xs-12 col-sm-12 col-md-3 bg-menu subItems5 hidden"></div>'+
           '</div>'+
           '<div class="col-xs-12 col-sm-12 col-md-4 bg-menuitemdesc itemdesc"></div>'+
       // '</div>'+
   '</div>'+
               '<div class="row mainDH hidden">'+
               '<div class="col-xs-12 col-sm-12 col-md-2 bg-menu mainmenu"></div>'+
               '<div class="col-xs-12 col-sm-12 col-md-3 dashMain">'+
               '</div>'+
               '</div>'+
               '<button class="btn btn-success" id="sendfpassreq">Submit</button>&nbsp;' +
           '<button class="btn btn-danger" data-dismiss="modal" aria-hidden="true">Cancel</button>' +
           '</div>' +
           '</div>' +
           // '</div>' +
           '</div>'
       );
           confirmModal.modal("show");
   var menudata = '';
   menudata += '<h4><u> Product Control</u></h4>';
   menudata += '<ul>';
   $.post('controllers/pc_productcontrol_c.php', {action: "loadProCategory"}, function (e) {
       if (e === undefined || e.length === 0 || e === null) {
            menudata += '<li><a href="#"> No Menu Item Found </a></li>';
       } else {
           $.each(e, function (index, qd) {
               console.log("In the each post function");
               console.log("Each post function data: pcat_id: " + qd.pcat_id + " pcat_name: " + qd.pcat_name);
               menudata += '<li class="pctrlmenuitem" id="pc_' + qd.pcat_id + '"><a href="#">' + qd.pcat_name + '<pcat_id class="">' + qd.pcat_id + '</pcat_id><pcat_name class="">' + qd.pcat_name + '</pcat_name></a><i class="fa fa-arrow-right pull-right"></i></li>';
               $('.procategory').html('').append(menudata);
                      });
                  }
      }, "json");
   $('.pctrlmenuitem').click(function () {
       $('.itemdesc').html('');
       $('.procategory li').css('background-color', '#333333');
       $(this).css('background-color', '#cc0000');
       $('.items').removeClass('hidden');
       if ($('.items').hasClass('hidden')) {
           $('.items').removeClass('hidden');
       }
       if (!$('.subItems1').hasClass('hidden')) {
           $('.subItems1').addClass('hidden');
       }
       if (!$('.subItems2').hasClass('hidden')) {
           $('.subItems2').addClass('hidden');
       }
       if (!$('.subItems3').hasClass('hidden')) {
           $('.subItems3').addClass('hidden');
       }
       if (!$('.subItems4').hasClass('hidden')) {
           $('.subItems4').addClass('hidden');
       }
       if (!$('.subItems5').hasClass('hidden')) {
           $('.subItems5').addClass('hidden');
       }
       var pcat_id = $(this).find('pcat_id').html();
       var pcat_name = $(this).find('pcat_name').html();
       loadItems(pcat_id, pcat_name);
       $.post('controllers/session-store.php', {sessionstore: 'store', pcat_id: pcat_id, pcat_name: pcat_name}, function (e) {
           console.log(e);
       }, "json");
   });
<button onclick="inventoryMenu()" class="inventoryButton">Inventory</button>

我发现了问题。。从post函数检索到的数据不能在post函数之外与原始数据一起引用。'menudata的变量在post函数之外为null,因此.append()函数没有附加任何内容。

我在post函数中移动了代码,现在它可以工作了。