Javascript 使用Jquery收集数组中的行ID,然后查询这些值以获得新表
我正在尝试使用jquery/php设置一个函数,其中用户在一行中选择一个具有特定ID的复选框(该ID与我数据库中行数据的主键匹配),将每个行ID存储到一个数组中,然后单击“比较所选行”按钮将其传递到一个新页面,在该页面上只显示那些选定行的结果表 每个输入如下所示Javascript 使用Jquery收集数组中的行ID,然后查询这些值以获得新表,javascript,php,jquery,mysql,arrays,Javascript,Php,Jquery,Mysql,Arrays,我正在尝试使用jquery/php设置一个函数,其中用户在一行中选择一个具有特定ID的复选框(该ID与我数据库中行数据的主键匹配),将每个行ID存储到一个数组中,然后单击“比较所选行”按钮将其传递到一个新页面,在该页面上只显示那些选定行的结果表 每个输入如下所示 我是jquery的新手,并计划使用以前编写的脚本的变体,以模式显示动态行数据。我不确定这段代码是否相关,但它还将行id传递到另一个php页面以查询数据库。请注意,这在过去只用于单个查询,我确信,在查询级别,这个新函数需要某种forea
我是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
内部的内容?抱歉,太早按回车按钮。代码在上面。为什么不正常提交表单呢?我已经决定接受您的建议并使用此脚本,但想知道我需要做什么才能将数据解析回可显示的格式?