Salve a tutti,
Credo di aver già scritto in passato di un problema del genere ma non ricorcor bene. Cheido scusa in anticipo se mi ripeto. Ho la necessita di far compilare dagli utentii tre campi: nazionalita, citta, prov. Sto effettuando la prima prova sulla nazionalità, ma senza ottenere i risultati voluti. Devo sfruttare un'unica tabella chiamata utenti. Questo è il listato completo:
iscrizione.php
In pratica quando il primo iscritto quindi si parla di un db comletamente vuoto inizia a compilare tutti i campi la select non deve comparire, mentre nella seconda iscrizione la select deve comparire con la nazionalità del primo iscritto. Ammettiamo il caso mi iscrivo io e metto nazionalità = italiana quando si iscrive tizio la select deve già apparire a video dando la possibilità all'utente di selezionare se c'è nell'elenco la sua nazionalità. Se non c'è lo inserire a mano nazionalita = francese. Spero di essermi spiegato per il meglio e di ottenere un vosrto aiuto. Grazie.
P.S.: I vecchi tag dove sono finiti ???
Credo di aver già scritto in passato di un problema del genere ma non ricorcor bene. Cheido scusa in anticipo se mi ripeto. Ho la necessita di far compilare dagli utentii tre campi: nazionalita, citta, prov. Sto effettuando la prima prova sulla nazionalità, ma senza ottenere i risultati voluti. Devo sfruttare un'unica tabella chiamata utenti. Questo è il listato completo:
iscrizione.php
PHP:
<DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<style type="text/css">
body {
background-color:#333;
color:#FFF;
font-family:Comic Sans MS;
font-size:20px;
}
#intestazione{
width:100%;
height:100px;
position:absolute;
font-family: Comic Sans MS;
top:0px;
left:0px;
text-align: center;
}
#posdata {
position: fixed;
top: -10px;
font-family:Comic Sans MS;
}
#divhr {
position:absolute;
top: 100px;
font-family:Comic Sans MS;
}
#messaggio {
position: absolute;
top: 480px;
font-family:Comic Sans MS;
}
#posselectgiorno{
position: absolute;
top: 226px;
left: 410px;
font-family:Comic Sans MS;
}
#posselectmese{
position: fixed;
top: 216px;
left: 525px;
font-family:Comic Sans MS;
}
#posselectanno{
position: fixed;
top: 216px;
left: 625px;
font-family:Comic Sans MS;
}
#posnazionalita{
position: absolute;
top: 145px;
left: 0px;
font-family:Comic Sans MS;
}
#posselectnazionalita {
position: absolute;
top: 145px;
left: 100px;
font-family:Comic Sans MS;
}
#posusername{
position: absolute;
top: 185px;
left: 0px;
font-family:Comic Sans MS;
}
#posemail{
position: absolute;
top: 235px;
left: 0px;
font-family:Comic Sans MS;
}
#posripemail{
position: relative;
top: 140px;
left: 0px;
font-family:Comic Sans MS;
}
#pospassword{
position: absolute;
top: 335px;
left: 0px;
font-family:Comic Sans MS;
}
#posripassword{
position: absolute;
top: 385px;
left: 0px;
font-family:Comic Sans MS;
}
#postasto {
position: relative;
left: 600px;
top:285px;
}
</style>
</head>
<body>
<div id ="intestazione">
<H2>BENVENUTI NEL MODULO D'ISCRIZIONE</H2>
<hr>
</div>
<div id ="divhr">
<form method="POST" autocomplete ="off" action="<?php $_SERVER['PHP_SELF'] ?>">
<p> <p> <p>
<label for =campo-cognome"> Cognome: </label> <input type ="text" name = "cognome" required />
</p> </p> </p>
<p> <p><label for =campo-nome"> Nome: </label> <input type ="text" name = "nome" required/> </p></p>
Seleziona la data di nascita (gg/mm/aaaa):
<?php
//Posizionamento delle tre select giorno, mese anno
// formazione dei tre select:
// giorno
echo '<select name="giorno">';
echo '<option value="">Scegli giorno: </option>';
for($i=1;$i<32;$i++){
echo "<option value=\"" . $i . "\">" . $i . "</option>\n";
}
echo"</select> ";
#echo "</div>";
// mese
#echo '<div id = "posselectmese">';
echo '<select name="mese">';
echo '<option value="">Scegli mese: </option>';
for($i=1;$i<13;$i++){
echo "<option value=\"" . $i . "\">" . $i . "</option>\n";
}
echo"</select> ";
#echo "</div>";
// anno
#echo '<div id = "posselectanno">';
// anno
echo '<select name="anno">';
echo '<option value="">Scegli anno: </option>';
for($i=1920;$i<2012;$i++){
echo "<option value=\"" . $i . "\">" . $i . "</option>\n";
}
echo "</select>";
#echo "</div>";
//controlla l'inserimento della data che sia corretta
if (!checkdate($input['mese'], $input['giorno'], $input['anno'])) {
$errore = "Data non valida";
}
?>
<div id = "posnazionalita">
<!--<p> <p> Seleziona la nazionalità: </p></p>-->
<p> <p> <label for =campo-nazionalita"> Nazionalità: </label> <input type ="text" name = "nazionalita" required/> </p></p>
</div> <!--chiude il div posnazionalita-->
<div id = "posusername">
<p> <p> <label for =campo-username"> Username: </label> <input type ="text" name = "username" required/> </p></p>
</div> <!--chiude il div posusername-->
<div id = "posemail">
<p> <p> <label for =campo-email"> Email: </label> <input type ="text" name = "email" required/> </p></p>
</div> <!--chiude il div posemail-->
<div id = "posripemail">
<p> <p> <label for =campo-ripemail">Ripeti-Email: </label> <input type ="text" name = "ripemail" required/> </p></p>
</div> <!--chiude il div posripemail-->
<div id = "pospassword">
<p> <p> <label for =campo-password"> Password: </label> <input type ="password" name = "password" required/> </p></p>
</div> <!--chiude il div posemail-->
<div id = "posripassword">
<p> <p> <label for =campo-ripemail">Ripeti-Password: </label> <input type ="password" name = "rippassword" required/> </p></p>
</div> <!--chiude il div posrippassword-->
<!--Posizionamento del tasto "Invio dati al centro"-->
<!-- <input type="submit" name="reg" value="Invio Iscrizione" />-->
<div id ="postasto">
<input type="submit" name="reg" value="Invio dati" id="submit" />
</div>
</div>
</form
<?php
require_once("connettimysqli.php");
echo '<div id = "posdata">';
require_once("data.php");
echo"</hr>";
#Controllo tasto "Invio dati"
if(!empty($_POST)){
# Inizializzazioni variabili
$id = mysqli_real_escape_string($con, $_POST['id']);
$cognome = mysqli_real_escape_string($con, $_POST['cognome']);
$nome = mysqli_real_escape_string($con, $_POST['nome']);
$giorno = mysqli_real_escape_string($con, $_POST['giorno']);
$mese = mysqli_real_escape_string($con, $_POST['mese']);
$anno = mysqli_real_escape_string($con, $_POST['anno']);
$nascita = sprintf("%04d%02d%02d", $anno, $mese, $giorno);
$nazionalita = mysqli_real_escape_string($con, $_POST['nazionalita']);
$citta = mysqli_real_escape_string($con, $_POST['citta']);
$prov = mysqli_real_escape_string($con, $_POST['prov']);
$username = mysqli_real_escape_string($con, $_POST['username']);
$email = mysqli_real_escape_string($con, $_POST['email']);
$ripemail = mysqli_real_escape_string($con, $_POST['ripemail']);
$password = mysqli_real_escape_string($con, $_POST['password']);
$rippassword = mysqli_real_escape_string($con, $_POST['rippassword']);
//Inserimento campo nazionalità e la select
$checknazionalita="SELECT DISTINCT nazionalita FROM utenti ORDER BY nazionalita";
$result = mysqli_query($con, $checknazionalita);
if ($result === false) {
echo "ERROR: " . mysqli_error($con);
}
$nazionalite = array();
while ($row = mysqli_fetch_assoc($result)) {
$nazionalite[] = $row['nazionalita'];
}
?>
<?php if (!empty($nazionalita)): ?>
<div id =posselectnazionalita'>
<select name="nazionalita">
<option value="">-seleziona-</option>
<?php foreach ($nazionalita as $entry): ?>
<option value="<?= $entry ?>"><?= $entry ?></option>
<?php endforeach; ?>
</select>
</div>
?>
<?php endif; ?>
<?php
# Inserimento dati nella tabella utenti
$query=("INSERT INTO utenti (cognome, nome, nascita, nazionalita, username, email, password) "
. "VALUES('$cognome','$nome','$nascita','$nazionalita','$username','$email','$password')");
$result=mysqli_query($con,$query);
if($result){
echo("<p> Inserimento avvenuto correttamente <p>");
} else{
echo("Inserimento non eseguito. Errore: ".mysqli_error($con));
}
}
?>
</body>
</html>
In pratica quando il primo iscritto quindi si parla di un db comletamente vuoto inizia a compilare tutti i campi la select non deve comparire, mentre nella seconda iscrizione la select deve comparire con la nazionalità del primo iscritto. Ammettiamo il caso mi iscrivo io e metto nazionalità = italiana quando si iscrive tizio la select deve già apparire a video dando la possibilità all'utente di selezionare se c'è nell'elenco la sua nazionalità. Se non c'è lo inserire a mano nazionalita = francese. Spero di essermi spiegato per il meglio e di ottenere un vosrto aiuto. Grazie.
P.S.: I vecchi tag dove sono finiti ???