JS variable for PHP or direct in BD [closed]

0

Good morning. I'm a beginner programmer, and I'm developing a sales web app, which sums all product prices dynamically included by javascript:

 <script>

function somaTotal() {

    var total = 0;

    $(".input_preco_venda").each(function(){

        total += parseFloat($(this).text());
    });

    $(".soma_venda").text(total);
}

// A função que gera inputs dinamicamente:
$(document).ready(function () {

    // A função que multiplica o preço do produto pela quantidade:
    $(document).on("keyup", ".input_quantidade_venda", function(){

        // pego o índice da classe
        var indice = $(".input_quantidade_venda").index(this);

        var n1 = parseInt(this.value, 10);
        // aplico a outra classe com o mesmo índice
        $('.input_preco_venda:eq('+indice+')').html(n1 * 10);

        somaTotal();
    });

    var i = 1;

    $('#add').click(function () {

        i++;

        $('#dynamic_field_venda').append('<tr class= "row" id="row' + i + '"><td><div class="input-field col s6"><input placeholder="Digite o Produto" name="input_produto_venda[]" type="text" class="validate"><label class="active" for="input_produto_venda[]">Produto</label></div><div class="input-field col s2"><input placeholder=" " name="input_quantidade_venda[]" class="input_quantidade_venda" type="text" class="validate" value="1"><label class="active" for="input_quantidade_venda[]">Quantidade</label></div><div class="input-field col s2"><div class="input_preco_venda"></div><label class="active" for="input_preco_venda[]">Preço</label></div><div class="input-field col s2"><button type="button" class="btn-floating btn-large waves-effect waves-light grey darken-3 btn btn-danger btn_remove" name="remove" id="' + i + '"><i class="material-icons">remove</i></button></div></td> </tr>');
    });

    $(document).on('click', '.btn_remove', function () {

        var button_id = $(this).attr("id");
        $('#row' + button_id + '').remove();

        somaTotal();
    });

    M.updateTextFields();//Manter este recurso após os adds e removes dos botões, pois dá erro no cálculo

    $('#submit').click(function(){

        $.ajax({

            url:"components/cad_venda.php",
            method:"POST",
            data:$('#cadastro_venda').serialize(),
            success:function(data) {

                alert(data);
                $('#cadastro_venda')[0].reset();
            }
        });
    });
});
 </script>

And play this div:

<div class="input-field col s3">

    <div class="row">

        <div class="input-field col s9 center">

            <?php echo "O total é R$ " ?>
        </div>

        <div class="input-field col s3 left">

            <div class="soma_venda" name="soma_venda" id="soma_venda"></div>
        </div>
    </div>
</div>

Bank:

 <?php

     $connect = mysqli_connect("localhost", "root", "", "narguile");

     $number = count($_POST["input_quantidade_venda"]);

     $soma_venda = $_POST['soma_venda'];

     if($number > 0) {

         for($i=0; $i<$number; $i++) {

             if(trim($_POST["input_quantidade_venda"][$i] != '')) {

                 $sql = "INSERT INTO vendas(quantidade, total) VALUES('".mysqli_real_escape_string($connect, $_POST["input_quantidade_venda"][$i])."', '$soma_venda')";
            mysqli_query($connect, $sql);
             }  
         }

         echo "Venda cadastrada!";  
     }  

     else {

         echo "Não rolou";  
     }
 ?>

But I need to put the value of this "soma_venda" in the Database, and honestly, I have no idea how. If anyone can help me, I appreciate it.

    
asked by anonymous 13.12.2018 / 15:06

1 answer

1

Create a input hidden to get the total value and send it together in serialize.

Place it after this div:

<div class="soma_venda" name="soma_venda" id="soma_venda"></div>
<input type="hidden" name="soma_venda">

And in the function that adds, add:

("[name=soma_venda]").val(total);

Looking like this:

function somaTotal(){
   var total = 0;

   $(".input_preco_venda").each(function(){
      total += parseFloat($(this).text());
   });

   $(".soma_venda").text(total);
   $("[name=soma_venda]").val(total);
}

Ready. The total sum value will go together in the serialize and will be received in PHP in the $soma_venda = $_POST['soma_venda']; variable.

    
13.12.2018 / 18:23