Bank registration via Ajax

0

Good afternoon.

I'm a beginner in the programming world, and I'm developing a web app and I'm having trouble making a sales record in the database. The system must insert new inputs to register more than 1 product per sale. When I press the register button, it presents the following error:

  

Notice: Undefined variable: connect in C: \ xampp \ htdocs \ narguile \ components \ cad_venda.php on line 13

     

Warning: mysqli_real_escape_string () expects parameter 1 to be mysqli, null given in C: \ xampp \ htdocs \ narguile \ components \ cad_venda.php on line 13

     

Notice: Undefined variable: connect in C: \ xampp \ htdocs \ narguile \ components \ cad_venda.php on line 14

     

Warning: mysqli_query () expects parameter 1 to be mysqli, null given in C: \ xampp \ htdocs \ narguile \ components \ cad_venda.php on line 14

     

Data Inserted

Follow my form:

<div id="modal8" class="modal">

<div class="modal-content" id="design_modal">

    <div id="font_titulo_modal"> Cadastrar Venda </div>

    <div id="font_modal">

        <form name="venda" id="venda" action="components/cad_venda.php" method="POST">

            <div class="row" id="inputs_cad_venda">

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

                    <input placeholder="Digite o produto" name="produto_venda" type="text" class="validate">
                    <label for="produto_venda">Produto</label>
                </div>

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

                    <input placeholder="Digite a quantidade" name="quantidade_produto_venda" type="text" class="validate">
                    <label for="quantidade_produto_venda">Quantidade</label>
                </div>
            </div>

            <div id="inputs_adicionais"></div>

            <div class="row">

                <div class="col s4 center">

                    <button class="waves-effect waves-light grey darken-3 btn fonte_button2 modal-trigger" type="submit" name="cadastra_venda"><i class="material-icons left">add_circle</i><div class="espaco2">Cadastrar Venda</div></button>
                </div>
            </div>
        </form>

        <div class="col s2 center">

            <button class="btn-floating btn-large waves-light grey darken-3" id="add_produto_venda"><i class="material-icons">add</i></button>
        </div>
    </div>
</div>

JavaScript header:

<script type="text/javascript">

$(document).ready(function(){  
var i=1;

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

  i++;  
  $('#inputs_adicionais').append('<div class="row" id="inputs_cad_venda'+i+'"> <div class="input-field col s8"> <input placeholder="Digite o produto" name="produto_venda" type="text" class="validate"> <label for="produto_venda">Produto</label> </div> <div class="input-field col s2"> <input placeholder="Digite a quantidade" name="quantidade_produto_venda" type="text" class="validate"> <label for="quantidade_produto_venda">Quantidade</label> </div> </div>' ); 
}); 

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

  $.ajax({

    url:"cad_venda.php",  
    method:"POST",  
    data:$('#venda').serialize(),

    success:function(data){

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

And the php:

<?php

$conecta = mysqli_connect('localhost', 'root', '');
mysqli_select_db($conecta, 'narguile');

$produto_venda = count($_POST['produto_venda']);

if($produto_venda > 0){

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

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

            $sql = "INSERT INTO 'vendas'('desconto') VALUES('".mysqli_real_escape_string($connect, $_POST["produto_venda"][$i])."')";  
            mysqli_query($connect, $sql);
        }
    }

    echo "Data Inserted";  
} else {

    echo "Please Enter Name";  
}

?>
    
asked by anonymous 04.12.2018 / 18:30

2 answers

1

You have declared $conecta and then use $connect . Correct this section that will work at first.

Top code

$conecta = mysqli_connect('localhost', 'root', '');

Code medium (Problem)

$sql = "INSERT INTO 'vendas'('desconto') VALUES('".mysqli_real_escape_string($connect, $_POST["produto_venda"][$i])."')";  
mysqli_query($connect, $sql);

Correction

$sql = "INSERT INTO 'vendas'('desconto') VALUES('".mysqli_real_escape_string($conecta, $_POST["produto_venda"][$i])."')";  
mysqli_query($conecta, $sql);
    
04.12.2018 / 20:37
1

The first "error" is not exactly an error, it's news, a kind of warning. You're just saying that a variable is undefined, that is, you assign no value to it. To get away with this "error" just put the error suppresser "@" before the variable, ex "@ $ var".

The second error concerns the mysqli_real_escape_string () function, apparently you are passing parameters in the wrong way, check out this link how to use this function: link

The third "error" is also news, just use the error suppressor.

The fourth and last error is also a parameter passing problem, here's how to use mysql_query function: link

Contrary to what you are thinking, the error is not in JS, but in PHP.

    
04.12.2018 / 19:36