Javascript 使用Jquery收集数组中的行ID,然后查询这些值以获得新表

Javascript 使用Jquery收集数组中的行ID,然后查询这些值以获得新表,javascript,php,jquery,mysql,arrays,Javascript,Php,Jquery,Mysql,Arrays,我正在尝试使用jquery/php设置一个函数,其中用户在一行中选择一个具有特定ID的复选框(该ID与我数据库中行数据的主键匹配),将每个行ID存储到一个数组中,然后单击“比较所选行”按钮将其传递到一个新页面,在该页面上只显示那些选定行的结果表 每个输入如下所示 我是jquery的新手,并计划使用以前编写的脚本的变体,以模式显示动态行数据。我不确定这段代码是否相关,但它还将行id传递到另一个php页面以查询数据库。请注意,这在过去只用于单个查询,我确信,在查询级别,这个新函数需要某种forea

我正在尝试使用jquery/php设置一个函数,其中用户在一行中选择一个具有特定ID的复选框(该ID与我数据库中行数据的主键匹配),将每个行ID存储到一个数组中,然后单击“比较所选行”按钮将其传递到一个新页面,在该页面上只显示那些选定行的结果表

每个输入如下所示

我是jquery的新手,并计划使用以前编写的脚本的变体,以模式显示动态行数据。我不确定这段代码是否相关,但它还将行id传递到另一个php页面以查询数据库。请注意,这在过去只用于单个查询,我确信,在查询级别,这个新函数需要某种foreach语句来处理id数组

这是我一直试图调整的脚本

$(function(){
    $('.compareRow').click(function(){
      var ele_id = $(this).attr('id');

       $.ajax({
          type : 'post',
           url : 'query.php', //query 
          data :  'post_id='+ ele_id, // passing id via ajax

       success : function(r)
           {
          other code? 
                     });
           }
         });
    });
    });
我知道这里需要更多,但这正是我目前所拥有的,任何帮助都将不胜感激

更新,因此我创建了该页面并具有以下内容:

在我的compareSelected.php中,我有以下代码:

if(isset($_POST['post_id'])){
    $compare_received = $_POST['post_id'];
}
print_r($compare_receive);
它返回未定义的索引

我还修改了代码,以便在这样做之后更改为该页面:

$('.compareRowButton').click(function(){
          var ids = [];
          //loop to all checked checkboxes
          $('.compareRow:checked').each(function(){
          //store all id to ids
          ids.push($(this).attr('id'));
      });
       $.ajax({
          type : 'post',
           url : 'compareSelected.php', //query 
          data :  {post_id:ids}, // passing id via ajax

       success : function(r)
           {
          window.location = 'compareSelected.php';

           }
         });
    });

不确定为什么它不会在代码上拾取数组值。

。每次单击复选框都会发送ajax请求。 在发送ajax请求之前,最好再做一个按钮或别的什么

$('SOME_ELEMENT').click(function(){
      var ids = [];
      //loop to all checked checkboxes
      $('.compareRow:checked').each(function(){
          //store all id to ids
          ids.push($(this).attr('id'));
      });
       $.ajax({
          type : 'post',
           url : 'query.php', //query 
          data :  {post_id:ids}, // passing id via ajax

       success : function(r)
           {
          other code? 
                     });
           }
         });
    });

如果设置了当前实现,则可以在rows数组中维护对每个ajax调用返回的数据的引用。稍后,您可以实现一个按钮,触发一个函数将行数据附加到表中。当然,在追加之前,您可能需要解析请求返回的数据

$(function(){
  var rows = [];
  $('.compareRow').click(function(){
    var ele_id = $(this).attr('id');
    $.ajax({
      type : 'post',
      url : 'query.php', //query 
      data :  'post_id='+ ele_id, // passing id via ajax

      success : function(data){
        rows.push(data);
      }
    });
  });
  $('.displayTable').click(function(){
    // append to table or divs
  });
});

我建议您避免在此处重新加载页面。或者,如果必须,在下一页上发出Ajax请求。您希望避免不同jQuery模块之间的逻辑紧密耦合。应使用Ajax异步加载数据,而无需重新加载页面

真棒,有道理,让我高兴地知道,通过重用这个特定的脚本,我已经走上了正轨。在下一页(生成新表的地方)的PHP端,有没有关于如何让PHP识别“ids”数组并在一个查询中循环遍历每个值的想法?或者我只是做一个循环,让它重新查询数组中的每个值吗?在
query.php
上,您可以使用
$\u POST['POST\u id']
访问那些
id
,然后使用
query.php
内部的内容?抱歉,太早按回车按钮。代码在上面。为什么不正常提交表单呢?我已经决定接受您的建议并使用此脚本,但想知道我需要做什么才能将数据解析回可显示的格式?