0

I can`t find a solution for this formular, so i am asking you guys how i can solve this: (1)I have this formular:

<form id="formRetur" action="" method="POST" novalidate="novalidate">
        <div id="mail-status" style="color: black;text-align: center;"></div>
        <h3><strong>
            Detalii client
        </strong></h3>
          <div class="row">
            <div class="col-md-4">
              <div class="form-group">
                <input type="text" class="form-control" name="nume_prenume" id="nume_prenume" placeholder="Nume Prenume">
              </div>
            </div>
            <div class="col-md-4">
              <div class="form-group">
                <input type="text" class="form-control" name="nr_tlf" id="nr_tlf" placeholder="Numar telefon">
              </div>
            </div>
            <div class="col-md-4">
              <div class="form-group">
                <input type="text" class="form-control" name="adresa_email" id="adresa_email" placeholder="Adresa email">
              </div>
            </div>
          </div>
        <h3><strong>
            Detalii comanda
        </strong></h3>
        <div class="row">
            <div class="col-md-4">
              <div class="form-group">
                <input type="text" class="form-control" name="nr_comanda" id="nr_comanda" placeholder="Numar comanda">
              </div>
            </div>
            <div class="col-md-4">
              <div class="form-group">
                <input type="text" class="form-control" name="data_comanda" id="data_comanda" placeholder="Data comanda">
              </div>
            </div>
            <div class="col-md-4">
              <div class="form-group">
                <input type="text" class="form-control" name="nr_factura" id="nr_factura" placeholder="Numar factura">
              </div>
            </div>
        </div>
        <h3><strong>
            Detalii produse
        </strong></h3>
        <div class="row">
            <a href="javascript:void(0)" id="add"><i class="fa fa-plus"  aria-hidden="true" style="position: absolute;z-index:999;"></i></a>
            <div class="col-md-4">
              <div class="form-group">
                <input type="text" class="form-control" name="den_prod" id="den_prod" placeholder="Denumire produs">
              </div>
            </div>
            <div class="col-md-4">
              <div class="form-group">
                <input type="text" class="form-control" name="culoare_prod" id="culoare_prod" placeholder="Culoare produs">
              </div>
            </div>
            <div class="col-md-4">
              <div class="form-group">
                <input type="text" class="form-control" name="cantitate" id="cantitate" placeholder="Cantitate">
              </div>
            </div>
        </div>
        <div class="maimulte">

        </div>
        <h3><strong>
            Motiv retur
        </strong></h3>
        <div class="row">
            <div class="col-md-12">
                <textarea name="motiv" id="motiv" class="form-control" cols="30" rows="10"></textarea>
            </div>
        </div>
        <div class="row">
             <div class="col-md-12" style="margin-top:10px;margin-bottom:10px;"><div class="g-recaptcha" data-sitekey="<?php echo SITE_KEY; ?>"></div>  </div>
            <div class="col-md-12">
                <button type="submit" id="send-message" class="btn btn-default">Trimite </button>
            </div>
            <div id="loader-icon" style="display:none;"><img src="images/loader.gif"></div>
        </div>
    </form>

I use ajax to insert data in DB, but i have an option where you can add more products when user press + adding +1 row with 3 fields name,color, qty and i want to insert also these in db, here is my ajax:

<script>
$(document).ready(function (e){
    $("#formRetur").on('submit',(function(e){
        e.preventDefault();

        $("#mail-status").hide();
        $('#send-message').hide();
        $('#loader-icon').show();
        $.ajax({
            url: "valid_retur.php",
            type: "POST",
            dataType:'json',
            data: {
            "nume_prenume":$('input[name="nume_prenume"]').val(),
            "nr_tlf":$('input[name="nr_tlf"]').val(),
            "adresa_email":$('input[name="adresa_email"]').val(),
            "nr_comanda":$('input[name="nr_comanda"]').val(),
            "data_comanda":$('input[name="data_comanda"]').val(),
            "nr_factura":$('input[name="nr_factura"]').val(),
            "den_prod":$('input[name="den_prod"]').val(),
            "culoare_prod":$('input[name="culoare_prod"]').val(),
            "cantitate":$('input[name="cantitate"]').val(),
            "motiv":$('textarea[name="motiv"]').val(),
            "g-recaptcha-response":$('textarea[id="g-recaptcha-response"]').val()},             
            success: function(response){
                // $( '#frmContact' ).each(function(){
                //     this.reset();
                // });
            $("#mail-status").show();
            $('#loader-icon').hide();
            if(response.type == "error") {
                $('#send-message').show();
                $("#mail-status").attr("class","alert alert-danger");               
            } else if(response.type == "message"){
                // grecaptcha.reset();
                $('#send-message').show();
                $("#mail-status").attr("class","alert alert-success");                          
            }
            $("#mail-status").html(response.text);  
            },
            error: function(){} 
        });
    }));
});
</script>

Here is my db:enter image description here

And there is my php file who insert in db with values from ajax:

 <?php
 if($_POST)
 {
 include('config.php');

$nume_prenume      = filter_var($_POST["nume_prenume"], FILTER_SANITIZE_STRING);
$nr_tlf      = filter_var($_POST["nr_tlf"], FILTER_SANITIZE_STRING);
$adresa_email     = filter_var($_POST["adresa_email"], FILTER_SANITIZE_STRING);
$nr_comanda     = filter_var($_POST["nr_comanda"], FILTER_SANITIZE_STRING);
$data_comanda     = filter_var($_POST["data_comanda"], FILTER_SANITIZE_STRING);
$nr_factura     = filter_var($_POST["nr_factura"], FILTER_SANITIZE_STRING);
$den_prod     = filter_var($_POST["den_prod"], FILTER_SANITIZE_STRING);
$culoare_prod     = filter_var($_POST["culoare_prod"], FILTER_SANITIZE_STRING);
$cantitate     = filter_var($_POST["cantitate"], FILTER_SANITIZE_STRING);
$motiv     = filter_var($_POST["motiv"], FILTER_SANITIZE_STRING);



if(empty($nume_prenume)) {
    $empty[] = "<b>nume_prenume</b>";       
}
if(empty($nr_tlf)) {
    $empty[] = "<b>nr_tlf</b>";
}   
if(empty($adresa_email)) {
    $empty[] = "<b>adresa_email</b>";
}
if(empty($nr_comanda)) {
    $empty[] = "<b>nr_comanda</b>";
}
if(empty($data_comanda)) {
    $empty[] = "<b>data_comanda</b>";
}
if(empty($den_prod)) {
    $empty[] = "<b>data_comanda</b>";
}
if(empty($culoare_prod)) {
    $empty[] = "<b>data_comanda</b>";
}





if(!empty($empty)) {
    $output = json_encode(array('type'=>'error', 'text' => implode(", ",$empty) . ' obligatoriu!'));
    die($output);
}

// if(!filter_var($email2, FILTER_VALIDATE_EMAIL)){ //email validation
//     $output = json_encode(array('type'=>'error', 'text' => '<b>'.$email2.'</b> is an invalid Email, please correct it.'));
//  die($output);
// }

//reCAPTCHA validation
if (isset($_POST['g-recaptcha-response'])) {

    require('component/recaptcha/src/autoload.php');        

    $recaptcha = new \ReCaptcha\ReCaptcha(SECRET_KEY, new \ReCaptcha\RequestMethod\SocketPost());

    $resp = $recaptcha->verify($_POST['g-recaptcha-response'], $_SERVER['REMOTE_ADDR']);

      if (!$resp->isSuccess()) {
            $output = json_encode(array('type'=>'error', 'text' => '<b>Captcha</b> Validation Required!'));
            die($output);               
      } 
}


// bag in db


$sql0 = "INSERT INTO retur (nume_prenume, nr_tlf, email, nr_comanda, data_comanda, nr_factura, den_prod, culoare_prod, cantitate_prod, motiv_retur)
 VALUES ('$nume_prenume', '$nr_tlf', '$adresa_email', '$nr_comanda', '$data_comanda', '$nr_factura', '$den_prod', '$culoare_prod', '$cantitate', '$motiv')";
mysqli_query($conn, $sql0);
 }

So basically this is a formular for returns products and if he have more products to return i added that jquery to add more fields and i want to be inserted in databased then i will fetch data and display it in my CMS.

  • [use input array](https://stackoverflow.com/questions/3314567/how-to-get-form-input-array-into-php-array) – Saad Suri Mar 07 '19 at 11:30

1 Answers1

0

1.You don't have to write that much code in ajax. You can easily use serialize():

Reduce you ajax code with below code:

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<script>
$(document).ready(function(){
var form=$("#your_form_id");
$("#Your_submit_id").click(function(){
$.ajax({
        type:"POST",
        url:"URL",
        data:form.serialize(),
        success: function(response){
            console.log(response);  
        }
    });
});
});
</script>

2.To add multiple product:
-You have to create every input field as array for product info like:

  <input type="text" name="prod_name[]">
  1. This array statement store you every product info index wise. If you used normal variable then it will post only you last product details.
  2. In Php code you have to take the count of posted product title & use for loop to get the every product information.

    for($i=0;$i<count($prod_name);$i++) { //Insert/fetch All Values like : $prod_name[$i] }

-When you click on add, just create clone of the prev available div.

Ashu
  • 1,320
  • 2
  • 10
  • 24
  • I have putting [] from start when user create more rows for each fields but i dont know how to take values from fields with prod_name[] and insert db. – denisa renata Mar 07 '19 at 11:53