JQGRID,如何在网格中多选行并在点击时将所选数据发布到数据库?

时间:2013-05-10 03:05:34

标签: php jquery jqgrid jqgrid-php

如何多选行并将发布数据发送到新数据表?我对这个post有一个想法,但它没有详细说明。我正在考虑多选行并发送它们将它们发布到数据库上的新表,同时从原始表中删除它们,点击任一按钮在导航栏上或最好是外部链接(如底部的“已完成”。enter image description here

[新编辑]这就是我的代码现在的样子。我在点击后将其发布到不同的数据库,之后我希望从网格和数据库中删除所选行。我在成功时附加了删除功能,但我没有删除任何内容。请提出任何建议吗?

            jQuery("#minibutton").click( function(){

    var selectedrows = $("#list").jqGrid('getGridParam','selarrrow');
if(selectedrows.length) {
for(var i=0;i<selectedrows.length; i++) {

var selecteddatais = $("#list").jqGrid('getRowData',selectedrows[i]);
        var rows=JSON.stringify(selecteddatais)
        var postArray = {json:rows};

    $.ajax({
      type: "POST",
      url: "jsonsend.php",
   data: postArray,       
   dataType: "json",
   success: function () {
                             var errors = [];
  jQuery("#list").jqGrid('getGridParam','selarrrow').each(function(index, value) {
    if (!jQuery("#list").jqGrid('delRowData', value)) errors.push(value);
  });
  if (errors.length)
  {
    alert('Already deleted or not in list on row(s): ' + errors.join(', ')); 
  }

    }

                       }); 
         } 

 }
 });
     });
</script>

1 个答案:

答案 0 :(得分:2)

你可以在jqgrid中启用delete按钮,然后将值作为delData传递给你的servlet或handler.Here我在我的servlet中传递MsgId的值。检查这里:

 .navGrid('#page',{edit:false,add:false,del:true,deltext:"Move to  Trash"},{},{},
            /*delete start */{
                 url: '<%=request.getContextPath() + "/MessageBoxServlet?inbox=Remove"%>',
                 closeOnEscape: true,
                 reloadAfterSubmit: true,
                 delData: {
                   MsgId: function () {
                        var sel_id = $('#list').jqGrid('getGridParam', 'selarrrow');
                        var value ="";
                        for(var a=0;a < sel_id.length;a++)
                            {
                               value = ('#list').jqGrid('getCell', sel_id[a], 'msgBoxId');

                            }

                       return value;
                   }
               },


             }
          );