Salve a tutti ho alcuni problemi con questo codice e ringrazio anticipatamente per il vostro aiuto.
Lo scopo è creare un form dinamico ingrediente+quantità che inserisca due campi alla volta e tenfa traccia in un db di tutti i valori inseriti andando a verificare che la quantità sia effettivamente un numero intero (espresso in grammi).
Questi i problemi che non riesco a risolvere
* se inserisco un solo ingrediente+quantità è tutto ok
se inserisco più di un ingrediente+quantità nel db perdo le informazioni sulla quantità (o meglio, riesco a registrare solo il primo dato della quantità). Di certo è un qualcosa collegato con l'array della quantità.
* se premo "submit" anche se non ho inserito nulla mi appare la scritta "valori inseriti" anche se poi nel db non è stato inserito nulla.
* vorrei effettuare un controllo sulla varibile quantità verificando che effettivamente il dato immesso sia un intero.
Qui il codice html
codice HTML:<html> <head> <title>Inserisci gli ingredienti della tua ricetta</title> <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" /> <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js"></script> <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.0/jquery.min.js"></script> </head> <body> <div class="container"> <br /> <br /> <h2 align="center">Inserisci gli ingredienti della tua ricetta</h2> <div class="form-group"> <form name="add_name" id="add_name"> <div class="table-responsive"> <table class="table table-bordered" id="dynamic_field"> <tr> <td><input type="text" name="name[]" placeholder="inserisci ingrediente" class="form-control name_list" /></td> <td><input type="text" name="qt[]" placeholder="inserisci ingrediente" class="form-control qt_list" /></td> <td><button type="button" name="add" id="add" class="btn btn-success">aggiungi</button></td> </tr> </table> <input type="button" name="submit" id="submit" class="btn btn-info" value="Submit" /> </div> </form> </div> </div> </body> </html> <script> $(document).ready(function(){ var i=0; $('#add').click(function(){ i++; $('#dynamic_field').append('<tr id="row'+i+'"> <td><input type="text" name="name[]" placeholder="inserisci ingrediente" class="form-control name_list" /></td> <button type="button" name="remove" id="'+i+'" class="btn btn-danger btn_remove">X</button></td></tr>'); $('#dynamic_field').append('<tr id="row'+i+'"> <td><input type="text" name="qt[]" placeholder="inserisci ingrediente" class="form-control qt_list" /></td> <button type="button" name="remove" id="'+i+'" class="btn btn-danger btn_remove">X</button></td></tr>'); } ); $(document).on('click', '.btn_remove', function(){ var button_id = $(this).attr("id"); $('#row'+button_id+'').remove(); }); $('#submit').click(function(){ $.ajax({ url:"ricette.php", method:"POST", data:$('#add_name').serialize(), success:function(data) { alert(data); $('#add_name')[0].reset(); } }); $.ajax({ url:"ricette.php", method:"POST", data2:$('#add_qt').serialize(), success:function(data2) { alert(data2); $('#add_qt')[0].reset(); } }); }); </script>
qui il codice php
Codice PHP:<?php
$connect = mysqli_connect("localhost", "root", "", "miodb");
$number = count($_POST["name"]);
echo $number;
if($number > 0)
{
for($i=0; $i<$number; $i++)
{
if(trim($_POST["name"][$i] != ""))
{
$sql = "INSERT INTO prova (campo,qt) VALUES('".mysqli_real_escape_string($connect, $_POST["name"][$i])."','".mysqli_real_escape_string($connect, $_POST["qt"][$i])."')";
mysqli_query($connect, $sql);
}
echo "ingredienti inseriti XXXXX";
}
}
else
{
echo "Please Enter Name";
}
?>

Rispondi quotando
