jquery - 无法使用 ajax 显示数据?

标签 jquery

嗨,我是 php 和 ajax 的新手,我在 php 中编写了一个选择查询,并将结果推送到一个数组中,我正在尝试使用 ajax 以表格格式显示结果,因为我编写了一个 ajax 调用,如下所示

$.ajax({
        type:"POST",
        url:"propage.php",
        dataType:"json",
        data:{
          action:"addFilter",
           pid:pid,
           
         },
        success : function(filres)
        { 
          
          if(filres.status==1)
          {
            { $.each(filres.data, function(i, row) { 
              var row = "<tr>"; 
              row += "<td>" + row.filter_id + "</td>"; 
              row += "<td>" + row.name + "</td>";
              row += "<td>" + row.filter + "</td>";
              row +="<td>"<a href=>Delete</a>"</td>";
              row += "</tr>"; 
              $("#table_filter").append(row); 
            }); 
          }
        }
          else
          {
            $("#get_msg").html("<p style=\'color:red;font-weight:bolder;\'>"+filres.data+"</p>");
          }
        }
    
      });
      return false;
    });

但是在表中我得到的数据是未定义的,但是当我点击按钮时,我在网络选项卡中得到的数据如下

data: [{filter_id: "1", name: "ss", filter: "SOCIAL SECURITY"},…]

谁能帮我解决这个问题?

最佳答案

您可以使用 forEach功能来做到这一点。

它不起作用的原因是在您使用 a 元素的 td 项目中有一些语法错误,而且您还需要一些额外的括号数据。您还使用相同的 var row.each 获取数据并分配给您的表。

运行下面的代码片段以查看它是否正常工作。

//Your data
let filres = {
  data: [{
    filter_id: "1",
    name: "ss",
    filter: "SOCIAL SECURITY"
  }]
}

//Foreach function
filres.data.forEach(function(item) {
  var row = "<tr>";
  row += "<td>" + item.filter_id + "</td>";
  row += "<td>" + item.name + "</td>";
  row += "<td>" + item.filter + "</td>";
  row += "<td><a href=>Delete</a></td>";
  row += "</tr>";
  $("#table_filter").append(row);
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="table_filter">

</div>

将您的 ajax 更改为以下所有内容都应该可以正常工作。

$.ajax({
  type: "POST",
  url: "propage.php",
  dataType: "json",
  data: {
    action: "addFilter",
    pid: pid,
  },
  success: function(filres) {
    if (filres.status == 1) {
        //Foreach function
          filres.data.forEach(function(item) {
            var row = "<tr>";
            row += "<td>" + item.filter_id + "</td>";
            row += "<td>" + item.name + "</td>";
            row += "<td>" + item.filter + "</td>";
            row += "<td><a href=>Delete</a></td>";
            row += "</tr>";
            $("#table_filter").append(row);
          })
       } else {
        $("#get_msg").html("<p style=\'color:red;font-weight:bolder;\'>" + filres.data + "</p>");
      }
   }
});

关于jquery - 无法使用 ajax 显示数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63046415/

相关文章:

jquery - 如何定义raty "score"变量传递给php脚本?

javascript - Bxslider 在 Firefox mac 中的下一张幻灯片上空白

javascript动态打印数组值

javascript - 如何在 HTML5 中剪辑(屏蔽)对象?

javascript - 循环数组以设置 value = vals[0] ||值[1] || jQuery 中的 vals[2]

javascript - 如何输出php?

javascript - 如何使直方图中的标签响应动态用户输入

javascript - Lightbox jQuery 插件可以在 HTML 电子邮件中运行吗?

php - Laravel 只验证发布的项目并忽略验证数组的其余部分

javascript - 淡入淡出的幻灯片不循环?