Buongiorno a tutti,
Sto provando a creare una pagina web con un form che va a popolare due table nel database.
In particolare in questo form ho una parte fissa e una dinamica, ovvero che l'utente può aggiungere un numero di partecipanti desiderati cliccando su un bottone.
Il fatto è che la parte fissa del form viene inserita senza problemi nel database. La parte dinamica invece non ne vuole proprio sapere.. ci sbatto la testa da un po e non so come fare.
Vi faccio vedere il codice cosi mi posso esprimere meglio:
index.php
input.php
utils.js
Il database ha queste due table:
Personale (nomep, cognomep, emailp, tipologia, email_rich,oggetto_rich) ;
Prenotazione (nome,cognome,email,oggetto,day,month)
Secondo voi come posso fare? Grazie del tempo e dell'aiuto.
Sto provando a creare una pagina web con un form che va a popolare due table nel database.
In particolare in questo form ho una parte fissa e una dinamica, ovvero che l'utente può aggiungere un numero di partecipanti desiderati cliccando su un bottone.
Il fatto è che la parte fissa del form viene inserita senza problemi nel database. La parte dinamica invece non ne vuole proprio sapere.. ci sbatto la testa da un po e non so come fare.
Vi faccio vedere il codice cosi mi posso esprimere meglio:
index.php
PHP:
index.php
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01
Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<title>Prenotazione </title>
<script src="utils.js"></script>
</head>
<body>
Inserire i dati richiesti:<br><br>
<form method="post" action="input.php">
<b> Richiedente :</b><br><br>
Nome:<input type="text" name="nome" size="20"><br>
Cognome:<input type="text" name="cognome" size="20"><br>
Email: <input type="email" name="email" size="20"><br>
Oggetto:<br><textarea name="oggetto" rows="5" cols="40" placeholder="Specificare oggetto"></textarea><br>
<select class="date" name="day">
<option value="1">01
</option>
<option value="2">02
</option>
<option value="3">03
</option>
<option value="4">04
</option>
<option value="5">05
</option>
<option value="6">06
</option>
<option value="7">07
</option>
<option value="8">08
</option>
<option value="9">09
</option>
<option value="10">10
</option>
<option value="11">11
</option>
<option value="12">12
</option>
<option value="13">13
</option>
<option value="14">14
</option>
<option value="15">15
</option>
<option value="16">16
</option>
<option value="17">17
</option>
<option value="18">18
</option>
<option value="19">19
</option>
<option value="20">20
</option>
<option value="21">21
</option>
<option value="22">22
</option>
<option value="23">23
</option>
<option value="24">24
</option>
<option value="25">25
</option>
<option value="26">26
</option>
<option value="27">27
</option>
<option value="28">28
</option>
<option value="29">29
</option>
<option value="30">30
</option>
<option value="31">31
</option>
</select>
<select name="month">
<option value="1">January
</option>
<option value="2">February
</option>
<option value="3">March
</option>
<option value="4">April
</option>
<option value="5">May
</option>
<option value="6">June
</option>
<option value="7">July
</option>
<option value="8">August
</option>
<option value="9">September
</option>
<option value="10">October
</option>
<option value="11">November
</option>
<option value="12">December
</option>
</select>
<br>
<b>Partecipanti </b>
<br>
<br>
<div id="start">
<div id="first">
Nome:<input type="text" name="nomep[]" size="20"><br>
Cognome: <input type="text" name="cognomep[]" size="20"><br>
Email: <input type="email" name="emailp[]" size="20"><br>
Personale:
<select name="tipologia[]" required="required">
<option>Interno</option>
<option>Esterno</option>
</select>
<br>
<br>
</div>
</div>
<br>
Numero partecipanti interni:
<input type="text" id="n1" size="1" value="1"><br>
<button><a href="#" id="add">Aggiungi partecipante</a></button>
<input type="submit" value="Invia" >
</form>
</body>
</html>
input.php
PHP:
<?php
//Connecting to db here
$servername = "localhost";
$username = "root";
$password = "123456789";
$dbname = "Project1";
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
echo "Connected successfully";
// Richiedente
$nome = $_POST['nome'];
$cognome = $_POST['cognome'];
$email = $_POST['email'];
$oggetto = $_POST['oggetto'];
$day = $_POST['day'];
$month = $_POST['month'];
// Personale
$nomep = $_POST['nomep'];
$cognomep = $_POST['cognomep'];
$emailp = $_POST['emailp'];
$tipologia = $_POST['tipologia'];
//inserting data order
$query1 = "INSERT INTO Prenotazione (nome,cognome,email,oggetto,day,month) VALUES ('$nome','$cognome','$email','$oggetto', $day, $month)";
//execute the query here
$result = mysqli_query($conn, $query1 );
// SINO A QUI tutto funziona tranquillamente
// Interni
$query = "";
if( !empty( $_POST['nomep'] ) ) {
foreach( $_POST['nomep'] as $key => $nomep ) {
$cognomep = empty( $_POST['cognomep'][$key] ) ? NULL : $_POST['cognomep'][$key];
$emailp = empty( $_POST['emailp'][$key] ) ? NULL : $_POST['emailp'][$key];
$tipologia = empty( $_POST['tipologia'][$key] ) ? NULL : $_POST['tipologia'][$key];
$query .= " ( '$nomep', '$cognomep', '$emailp','$tipologia', '$email', '$oggetto' ) ".(end($$_POST['nomep']) ? '' : ',');
}
}
var_dump($query); // MI restituisce le stringhe in maniera corretta.
if( !empty( $query ) ) {
$query2 = "INSERT INTO Personale (nomep, cognomep, emailp, tipologia, email_rich,oggetto_rich) VALUES ".$query;
$result = mysqli_query($conn, $query2 ); //
}
?>
utils.js
Codice:
$(document).ready(function() {
$("#add").click(function(){
var val1 =$("#n1").val();
for(var i=0;i<val1;i++){
$("#start").append($("#first").clone());
}
});
});
Il database ha queste due table:
Personale (nomep, cognomep, emailp, tipologia, email_rich,oggetto_rich) ;
Prenotazione (nome,cognome,email,oggetto,day,month)
Secondo voi come posso fare? Grazie del tempo e dell'aiuto.
Ultima modifica: