从窗口模式的PHP POST数组


PHP POST Array from window-modal

我有一个包含表的网页。每一行都有一个复选框。当用户使用复选框选择行,并按下按钮(我将代码保存在数组中)时,它显示一个带有四个按钮的窗口模式(输入)。当点击其中一个按钮时,它会启动一个PHP页面来更新数据库。

现在,当它显示窗口模式,我得到一个数组的选择行代码,我不知道如何发送这个数组(jquery代码)到PHP页面使用POST方法。

window-modal:

HTML代码
<!-- CHANGE STATUS MODAL MENU -->
<div class="modal fade" id="change" tabindex="-1" role="dialog" aria-labelledby="change" aria-hidden="true">
    <div class="modal-dialog">
        <div class="modal-content">
            <div class="modal-header">
                <button type="button" class="close" data-dismiss="modal" aria-hidden="true"><span class="glyphicon glyphicon-remove" aria-hidden="true"></span></button>
                <h4 class="modal-title custom_align" id="Heading">CANVIAR ESTAT</h3>    
            </div>
            <form action="updateEstado.php" method="post">  
                <div class="modal-body">
                    <div class=" text-center">
                                <div class="container-fluid">   
                                    <div class="row">
                                        <div class="col-md-12 text-center">
                                            <input type="submit" class="btn btn-modal-estado" style="background-color:YellowGreen; color:white;" value="ACTIVAT">
                                        </div>
                                    </div>
                                    <div class="row">
                                        <div class="col-md-12 text-center">
                                            <input type="submit" class="btn btn-modal-estado" style="background-color:Tomato; color:white;" value="PENDENT MIQUEL ALIMENTACIÓ">         
                                        </div>
                                    </div>
                                    <div class="row ">
                                        <div class="col-md-12 text center">
                                            <input type="submit" class="btn btn-modal-estado" style="background-color:SkyBlue; color:white;" value="PENDENT ADDCOM">
                                        </div>  
                                    </div>
                                    <div class="row">
                                        <div class="col-md-12 text center">
                                            <input type="submit" class="btn btn-modal-estado" style="background-color:Gray; color:white;" value="DESACTIVAT">
                                        </div>
                                    </div>
                                    <div class="row">
                                        <h5 id='codigosSeleccionados'></h5>
                                    </div>
                                </div>    
                        </div>   
                    </div>
                </form>
            </div>
        </div>
    </div> 
</div>
Jquery代码:

/* CHANGE MODAL WINDOW */
    $('#change').on('show.bs.modal', function (event) {
        var arrayCod = new Array();
        $('#tableprod').find('tbody tr').each(function () {
                var $button = $(event.relatedTarget) // Button that triggered the modal
                var row = $(this);
                if (row.find('input[type="checkbox"]').is(':checked')) {
                    var field = $(this).data("field");
                    var cod;
                    $tds = row.find("td"); // get all table cells in that row
                    $.each($tds, function(index,value) {
                        var field = $(this).data("field");
                        if (field == 'codigo'){
                            cod = $(this).text();
                            console.log(cod);
                            arrayCod.push(cod);
                            return false;   
                        }
                    });
                }
                if (arrayCod.length != 0){
                    $('input[type="submit"]').prop('disabled', false);
                    $('#codigosSeleccionados').text(arrayCod.length + " codis seleccionats");


                } else {
                    $('input[type="submit"]').prop('disabled', true);
                    $('#codigosSeleccionados').text("Cap codi seleccionat");    
                }
            });
            //$('#codigosSeleccionados').text("CODIS SELECCIONATS: " + strCods);
            console.log(arrayCod.length);  
    });

和PHP页面:

        $conn = dbConnect("localhost", "5432", "dbname", "dbuser", "dbpass");  
            $codigo = $_POST['codigo'];
            $query = "UPDATE produccion.ma_producto SET estado={$estado} WHERE codigo={$codigo}"; 
            $result = pg_query($conn, $query);

我不确定如何做到这一点,我可以保存在全局php变量从jquery?或者我是否可以在点击按钮时发送post方法的数组?(

将所有选中的代码添加为hidden字段和[]的列表,然后PHP也将接收它们作为列表。它应该是在form上,这4个按钮中的一个将提交:

var $form = $("form"); // The modal's form
arrayCod.forEach(function(cod) {
    $('<input type="hidden" name="codigo[]" value="' + cod + '">').appendTo($form);
});
// Event handler for your modal's four buttons. They will submit the form
$('.modal').on('click', 'button', function() {
    $form.submit();
});

然后在PHP中:

$codigos = $_POST["codigos"]; // This will be an array

的例子:

$("#open-modal").on("click", function() {
  var checkedCodes = [];
  
  // Get checked checkboxes
  $("#codes input").each(function() {
    if ($(this).is(":checked")) {
      // Get the code from td's text
      checkedCodes.push($(this).closest("tr").find("td:eq(1)").text());
    }
  });
  
  // Add hidden fields to the "modal"'s form
  var $modal = $("#modal-body"),
      $form = $modal.find("form");
  
  checkedCodes.forEach(function(code) {
    $('<input type="hidden" name="codigos[]" value="' + code + '">').appendTo($form);
  });
  
  $modal.show();
});
$("#modal-body").on("click", "button", function() {
  $("#modal-body").find("form").submit();
});
#modal-body {
  display: none;
  border: 1px solid #000
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table id="codes">
  <tr>
    <td><input type="checkbox"></td>
    <td>1</td>
  </tr>
  <tr>
    <td><input type="checkbox"></td>
    <td>2</td>
  </tr>
  <tr>
    <td><input type="checkbox"></td>
    <td>3</td>
  </tr>
</table>
<button id="open-modal">Open Modal</button>
<div id="modal-body">
  Imagine this is your modal
  <form>
    <button>Button #1</button>
    <button>Button #2</button>
    <button>Button #3</button>
    <button>Button #4</button>
  </form>
</div>

这段代码只是一个示例。我甚至没有基于你的代码