Как обновить выбранные поля с помощью флажка?

Я хочу изменить значение statusAut на Autorizada при нажатии кнопки Autorizar seleccionados, но только из записи, которую я выбрал с помощью checkbox. Я действительно не знаю, смогу ли я, я хочу быть авторизован в реестре.

TABLA DE COMPRAS



    
    ICOM INGENIERÍA
    
    
    
    
    
    
    
    



 

LISTADO DE ORDENES DE COMPRA


"); echo utf8_encode(""); echo utf8_encode(""); echo utf8_encode(""); echo utf8_encode(""); echo utf8_encode(""); echo utf8_encode(""); echo utf8_encode(""); echo utf8_encode(""); echo utf8_encode(""); echo utf8_encode(""); echo utf8_encode(""); } mysqli_free_result($resultado); mysqli_close($db_connection); ?>
CLIENTE CeCo #ORDEN PROVEEDOR SUBTOTAL TOTAL STATUS PART. FECHA PEDIDO USUARIO STATUS AUT. FECHA Y HORA AUT.
" . $row["idCompra"] . "" .$row["CveSuc"] . "" . $row["Ceco"] . "" . $row["OrdenComp"] . "" . $row["NomProv"] . "$" .$row["SubtPed"] . "$" .$row["TotalPed"] . "" . $row["StatusPart"] . "" . $row["FalltaPed"] . "" . $row["NomUser"] . "" .$row["statusAut"] . "" . $row["FechHoraAut"]. "

файл, на который я ссылаюсь, это add_reg2.php

, это просто обновление таблицы

Пожалуйста, если кто-то может сказать мне, как получить выбранные данные с помощью флажка, я был бы признателен.

1
задан 22.04.2017, 00:32
2 ответа

Чтобы решать твою проблему, делать следующее:

Нужно добавлять новую колонну к твоей таблице, так как, как ты использовал свойство checkbox из-за defaul table bootstrap больше ничто, оно функционирует как таковой. в этом случае осталась бы эта часть как

<th data-field="id" data-checkbox="true"></th>
<th data-field="idCompra"></th>

и PHP, где ты делаешь while

echo "<tr><td width=\"8%\"></td>";
echo utf8_encode("<td width=\"8%\">" . $row["id_checkbox"] . "</td>");

Javascript

<script type="text/javascript">
    $(document).ready(function(){
            var checkedRows = new Array();
            //Cuando se da clic al checkbox este selecciona las propiedades de la tabla..
            $('#table').on('check.bs.table', function (e, row) {
                  checkedRows.push({id: row.idCompra});
                  console.log(checkedRows);
                });

                $('#table').on('uncheck.bs.table', function (e, row) {
                  $.each(checkedRows, function(index, value) {
                    if (value.id === row.id) {
                      checkedRows.splice(index,1);
                    }
                  });
                  console.log(checkedRows);
                });
//Aqui es donde actualizas tu tabla asignale un id al botón
$('button#acpt').on("click",function(e){
         var array = {data: checkedRows};
         var paramJSON = JSON.stringify(array);

         console.log(array);
          $.ajax({
                method: 'POST',
                url: 'add_reg2.php',
                data: { data: paramJSON },
                cache:false })
                .done(function( msg ) {
                  console.log(msg);
                location.reload()
              });

              e.preventDefault();              
        });
});

И php, который получает данные

if(isset($_POST["data"]))
{
    $data = json_decode($_POST["data"]);
    //var_dump($data);
    foreach($data->data as $mydata)
    {
        $MySQLiconn->query("UPDATE vistacompras SET statusAut='Autorizada' WHERE idCompra=".$mydata->id);
    }
}
1
ответ дан 24.11.2019, 12:15
  • 1
    Спасибо за помощь, я протестирую có я говорю и они diré если оно я функционирует, он был в резерве ответа. – sonjer 06.12.2016, 23:53
  • 2
    Cig использовал твой код, но выйдя click на одинокую кнопку я direcciona в файл add_reg2.php и он не вызывает у меня никакой ошибки и не работает консультация, не, если он проистек того, что я использую boostrap, и восходи - checkbox не функционируйте так. – sonjer 07.12.2016, 01:39
  • 3
    Сними action form я ответил твой код в помещении и функционируй совершенно, это, потому что то, что я сделал, это делает посредством ajax – cignius 07.12.2016, 01:42
  • 4
    друг Сиг извиняет мое неведение, но где я, должно быть, помещаю có я говорю php, потому что, дав клик botó n только меня освежает страница, не посылая никакой ошибки, но также не обновляет данных. có я говорю, что php я это поместил внизу рукописного шрифта. – sonjer 07.12.2016, 16:50
  • 5
    Проблема была маршрутом, на который я ссылался xD – sonjer 14.12.2016, 18:34

Я буду оставлять тебе полный пример, как он мог бы оставаться, создам один без bootstrap простым способом, это просто, чтобы ориентировать тебя.

Код HTML:

<form method="POST" action="add_reg2.php"> 
  <table>        
    <tr>
      <th>&nbsp;</th>
      <th>CLIENTE</th>
      <th>CeCo</th>
      <th>ORDEN</th>  
      //Etc.     
    </tr> 

    <?php

    //Conexión Mysql.
    require_once'tuconexion.php';

    //Sentencia SQL.
    $sql = "SELECT  *  FROM vistacompras";
    $resultado = mysqli_query($db_connection,$sql);

    while($row = mysqli_fetch_array($resultado)){
    ?>
    <tr>
      <td><input type="checkbox" name="id[]" value="<?php echo $row['idCompra']; ?>" /></td>
      <td><?php echo $row['CveSuc']; ?></td>
      <td><?php echo $row['Ceco']; ?></td>
      <td><?php echo $row['OrdenComp']; ?></td>      
    </tr> 
    <?php
    }//Fin while

    mysqli_close($db_connection); 
    ?>   

  </table>
  <input type="submit" name="autorizados" value="Autorizar seleccionados" />
</form>

Код PHP: (add_reg2.php)

if (isset($_POST['autorizados'])) { 

    //Conexión Mysql.
    require_once'tuconexion.php';

    $id = $_POST['id'];
    //var_dump($id);
    $count = count($id);
    //Mensaje con el cambio.        
    $status = 'AUTORIZADA';

    //Rebuscamos en busca de resultados $_POST (id selecionados).
    for ($i=0; $i < $count; $i++) {

        //Actualizamos Base de datos.
        mysqli_query($db_connection,"UPDATE vistacompras SET statusAUT='$status'
        WHERE idCompra='$id[$i]' LIMIT 1");

    }

    mysqli_close($db_connection);    
    echo "Se actualizo correctamente";     
}
0
ответ дан 24.11.2019, 12:15