【问题标题】:If I select multiple records with ckeck box i want ids on that selected recods如果我用复选框选择多条记录,我想要所选记录上的 id
【发布时间】:2018-11-20 09:28:40
【问题描述】:

如果我在单击按钮后用复选框选择多个前 3 条记录,我在数据表中有复选框,我会得到类似 id=1&id=2id=3 的 ID,我只想要 ID 号并像这样分隔 1,2,3

function allAreEqual(aarray) {
    if (!aarray.length) return false;
    return aarray.reduce(function(a, b) {
        return (a === b) ? a : (!b);
    }) === aarray[0];
}

$(function() {
    $('#create_challan').click(function() {
        var allVals = [];
        var saleid = [];
        var buttonp = $(this);
        buttonp.addClass('disabled');
        buttonp.html(working);
        $('input[name=checkboxlist]:checked').each(function() {
            allVals.push($(this).val());
            saleid.push($(this).attr('saleid'));
        });

        if (allAreEqual(saleid)) {
            $.post('<?php echo base_url(); ?>index.php/' + user_type + '/' + module + '/create_invoice_pdf', {
                    <?php echo $this->security->get_csrf_token_name(); ?>: '<?php echo $this->security->get_csrf_hash(); ?>',
                    saleid: saleid[0],
                    val: allVals
                },
                function(data, status) {
                    window.open(base_url + 'invoices/' + data, '_blank');
                    window.focus();
                    location.reload();
                });
        } else {
            bootbox.alert("<b><br><br>Selection Error!</b>");
            buttonp.removeClass('disabled');
            buttonp.html('Create Invoice');
        }

    });
});

【问题讨论】:

  • 你的意思是在这个属性val: allVals
  • "我得到像这样的 id=1&id=2id=3"...你在哪里看到这个值?如果您正在查看 HTTP 请求正文,那么这是意料之中的 - 这就是您在 HTTP 请求中传输值的方式。尽管它们只会相互覆盖,因此您需要为它们提供单独的名称,或使用[]。更清楚地了解您在哪里看到此信息会有很大帮助
  • P.S.我注意到在您的 $.post 请求成功后,您正在执行“location.reload()”。由于在这种情况下您将立即刷新页面,那么使用 AJAX 的原因是什么?普通形式的回发会更容易处理,需要更少的代码并且可以产生相同的效果 - 发出请求,然后加载所需的页面。 AJAX 的全部目的是让您停留在同一页面上。在 AJAX 完成后立即重定向用户完全违背了使用它的意义。

标签: jquery mysql sql ajax


【解决方案1】:

你可以直接在 jquery 级别处理它

例如:- 如果一行中有 5 个单元格 设置一个像

<tr>
<td class='idcontainer' data-id='myid'>any-other-data</td>
</tr>

data-id 将存储每行中每个项目的 id

点击submit按钮

你需要为每个&lt;tr&gt;申请forloop,找到它的子TD比如$('td.idcontainer').data('id');

并将它们存储在一个非本地变量的数组中

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多