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";
}
?>