Buongiorno a tutti.
Panorama:
database di ricette, diviso nelle tabelle:
- ricette (informazioni generali sulla ricetta, titolo, persone, campi statistici vari...)
- ricette_lezioni (se la ricetta viene utilizzata all'interno di una lezione di cucina inserisco il codice della lezione)
- ricette_ingredienti
- ricette_procedimenti
- ricette_foto
L'inserimento avviene attraverso diverse pagine in successione.Ogni pagina aggiorna una tabella.
Ho un problema sulle due pagine che gestiscono gli ingredienti.
La prima pagina è un form che permette di inserire le righe mano a mano che mi servono (visto che il numero di ingredienti nelle ricette non è definibile in partenza).
La pagina è la seguente (pagina1.php):
Questa pagina prende un paio di dati dalla precedente (codice ricetta e titolo) e invia alla successiva le righe inserite.
Ecco il codice della pagina "ricevente" (pagina2.php):
Problema:
Nella tabella ricette_ingredienti trovo solo la prima riga...
Dove sbaglio?
Grazie per i suggerimenti
Panorama:
database di ricette, diviso nelle tabelle:
- ricette (informazioni generali sulla ricetta, titolo, persone, campi statistici vari...)
- ricette_lezioni (se la ricetta viene utilizzata all'interno di una lezione di cucina inserisco il codice della lezione)
- ricette_ingredienti
- ricette_procedimenti
- ricette_foto
L'inserimento avviene attraverso diverse pagine in successione.Ogni pagina aggiorna una tabella.
Ho un problema sulle due pagine che gestiscono gli ingredienti.
La prima pagina è un form che permette di inserire le righe mano a mano che mi servono (visto che il numero di ingredienti nelle ricette non è definibile in partenza).
La pagina è la seguente (pagina1.php):
PHP:
<?php
session_start();
//se non c'è la sessione registrata
mb_internal_encoding('UTF-8');
if (!$_SESSION['autorizzato']) {
echo "<h1>Area riservata, accesso negato.</h1>";
echo "Per effettuare il login clicca <a href='index.php'><font color='blue'>qui</font></a>";
die;
}
//Altrimenti Prelevo il codice identificatico dell'utente loggato
$cod = $_SESSION['cod']; //id cod recuperato nel file di verifica
$codicericetta = $_GET['codicericetta'];
$titolo = $_GET['titolo'];
?>
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Inserimento ingredienti</title>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.4/jquery.min.js"></script>
<script type='text/javascript'>
$(document).ready(function() {
var currentItem = 1;
AddRow(currentItem);
$('#addnew').click(function(){
currentItem++;
AddRow(currentItem);
});
$('#removelast').click(function(){
if (currentItem > 1) {
var rowID = '#row'+currentItem
$(rowID).remove();
currentItem--;
$('#items').val(currentItem);
}
});
function AddRow(currentItem)
{
var strToAdd = NewRow(currentItem)
$('#data').append(strToAdd);
$('#items').val(currentItem);
};
function NewRow(currentItem)
{
text
='<tr id="row'+currentItem+'">'
+'<td><input name="idricetta[]" type="text" size="5" value="<? echo $codicericetta; ?>" readonly="readonly" /></td>'
+'<td><input name="ingrediente[]" type="text" size="50" /></td>'
+'<td><input name="quantita[]" type="text" size="4" /></td>'
+'<td><select name="misura[]">'
+'<option value="===" selected="selected">scegli unità di misura</option>'
+'<option value="Kg">Kg</option>'
+'<option value="Gr">Gr</option>'
+'<option value="Lt">lt</option>'
+'<option value="ml">ml</option>'
+'<option value="N">N.</option>'
+'<option value="Bicchiere">Bicchiere/i</option>'
+'<option value="Cucchiai grandi">Cucchiai/o grande</option>'
+'<option value="Cucchiaino">Cucchiaino/i</option>'
+'<option value="Spicchi">Spicchio/i</option>'
+'<option value="Mazzetto">Mazzetto/i</option>'
+'<option value="Filetti">Filetto/i</option>'
+'<option value="Fette">Fetta/e</option>'
+'<option value="dl">dl</option>'
+'<option value="QB">QB</option>'
+'</select>'
+'</td>'
+'</tr>';
return text;
};
});
</script>
</head>
<body>
<form name='myform' method='POST' action="pagina2.php">
<table class="dd" width="100%" id="data">
<tbody>
</tbody>
</table>
<input type="hidden" name="items" id="items" value="0" />
<input type="hidden" name="titolo" id="titolo" value="<? echo $titolo; ?>" />
<input type="button" name="addnew" id="addnew" value="Add new item" />
<input type="button" name="removelast" id="removelast" value="Remove last item" />
<input type="submit" name="submit" value="Submit Values" />
</form>
</body>
</html>
Questa pagina prende un paio di dati dalla precedente (codice ricetta e titolo) e invia alla successiva le righe inserite.
Ecco il codice della pagina "ricevente" (pagina2.php):
PHP:
<?php
if(!empty($_POST['submit']))
{
// ho ricevuto i dati perchè è stato cliccato il bottone 'Submit Values' della pagina 1
// qui devo mettere il trattamento dei dati ricevuti ricordando che,
$items = $_POST['items']; // numero delle righe presenti
$titolo = $_POST['titolo'];
echo "ho ricevuto " . $items . " righe<br /><br />";
// $numricetta = $_POST['numricetta'];
include 'connect3.php';
for($r = 0; $r < $items; $r++)
{
$idricetta = $_POST['idricetta'][$r];
$ingrediente = $_POST['ingrediente'][$r];
$quantita = $_POST['quantita'][$r];
$misura = $_POST['misura'][$r];
echo "riga : " . $r . " ricetta : " . $idricetta . " ingrediente : " . $ingrediente . " quantita : " . $quantita . " misura : " . $misura . "<br /><br />";
$connessione->query("INSERT INTO ricette_ingredienti VALUES ('', '$idricetta','$ingrediente', '$quantita', '$misura')");
$connessione->close();
}
}
else
{
echo "NON HO RICEVUTO DATI CON il bottone 'Submit Values !'";
die();
}
echo "<html>";
echo "Numero ricetta: " . $idricetta . "<br>";
echo "Titolo: ". $titolo . "<br>";
echo "<form method='post' action='inserimentoricette2.php'>";
echo "<input name='idricetta' type='hidden' size='10' value='$idricetta' />";
echo "<input name='titoloric' type='hidden' size='10' value='$titolo' />";
echo "<input name='conferma' type='submit' id='conferma' value=' Inserire il Procedimento >> ' />";
echo "</form>";
echo "</html>";
?>
Problema:
Nella tabella ricette_ingredienti trovo solo la prima riga...
Dove sbaglio?
Grazie per i suggerimenti