la select non compare come dovrebbe apparire inserendo da tastiera

Ibernato

Utente Attivo
2 Giu 2016
70
6
8
31
Ovvio che non funziona! In codice è completamente sbagliato. Devi richiamare la funzione javascript e passargli l'indice altrimenti ti esce sempre l'input. Non hai proprio le basi secondo me di come si sviluppi questa cosa e nè una logica. Appena ho tempo ti invio un esempio.
 

Ibernato

Utente Attivo
2 Giu 2016
70
6
8
31
Codice:
<?php
    //includi file connessione DB
    $query = "SELECT count(*) FROM UTENTI";
    $result = mysqli_query($connessione, $query);
    if(!$result) echo "Errore Query";
    else{
        $row = mysqli_num_rows($result);
        if($row > 0) $indice = 1;
        else $indice = 0;
    }
?>

<!DOCTYPE html>
<html lang="it">
    <head>
        <title> prova </title>
        <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.2/jquery.min.js">
        </script>
        <script>
            function funzione(indice){
                if(indice == 1){
                    $("#nazione").show();
                    $("#nazionalita").hide();
                }
                else {
                    $("#nazionalita").show();
                    $("#nazione").hide();
                }
            </script>
        </head>
        <body onLoad="funzione(<?php echo $indice ?>)">
           
            <form action="tuapagina" method="POST">
                //metti qui il tuo form con gli id
            </form>
        </body>
    </html>
 
  • Like
Reactions: paperinik4

paperinik4

Utente Attivo
29 Mag 2011
1.811
0
36
Roma
www.ricetteagogo.it
Ciao ibernato,

Ho eseguito il tuo esempio ma non so perchè Forse ho sbagliato posizione dove doveva andare ??? ma mi sembra che era abbastanza chiaro. Di seguito ti mostro il listato completo. E un'immagine di quello che mi appare.

iscrizione2.php

PHP:
<!DOCTYPE html>

<html>
  <head>
  <meta charset="UTF-8">
  <title>Modulo d'iscrizione</title>
  <link href="style.css" rel="stylesheet" type="text/css">
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.2/jquery.min.js"></script>
   
  </head>
  <body>
   
  </body>
<DOCTYP<?php
////////////////////////////////////////////////////////////////////////
// Connessione alla base di dati
// NOTA: La connessione è disponibile nella variabile globale $con
require_once("connettimysqli.php");

require_once("data.php");


////////////////////////////////////////////////////////////////////////
// Controllo su dati inviati dal form
// Se sono stai inviati dei dati, la richiesta di inserimento di un utente
// viene elaborata
if (!empty($_POST)) {
  // Lettura e validazione dei parametri
  $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']);
  $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']);
   
   
  // Controlla che la data inserita sia valida e la codifica nel formato aaaammgg
  if (!checkdate($mese, $giorno, $anno)) {
  echo "<p><strong>Errore</strong>: Data non valida</p>";
  }
  $nascita = sprintf("%04d%02d%02d", $anno, $mese, $giorno);

// Inizia nascondi/appari dell'input per la nazionalità
   
   
  $query = "SELECT count(*) FROM UTENTI";
  $result = mysqli_query($con, $query);
  if(!$result) echo "Errore Query";
  else{
  $row = mysqli_num_rows($result);
  if($row > 0) $indice = 1;
  else $indice = 0;
  }
   
   
   
  // Inserimento 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 !== false) {
  echo "<p>Inserimento avvenuto correttamente<p>";
  } else {
  echo "<p>Inserimento non eseguito.<br />";
  echo '<strong>Errore</strong>: '.mysqli_error($con).'</p>';
  }
}

?>

<DOCTYPE html>
<html>
  <head>
  <meta charset="UTF-8">
   
  <script>
  function funzione(indice){
  if(indice == 1){
  $("#nazione").show();
  $("#nazionalita").hide();
  }
  else {
  $("#nazionalita").show();
  $("#nazione").hide();
  }
  </script>
  </head>
  <body onLoad="funzione(<?php echo $indice ?>)">
   
  </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'] ?>">
  <!-- Cognome -->
  <p>
  <label for="campo-cognome">Cognome: </label>
  <input type="text" name="cognome" required />
  </p>
   
  <!-- Nome -->
  <p>
  <label for="campo-nome">Nome: </label>
  <input type="text" name="nome" required />
  </p>

  <!-- Data di nascita -->
  Seleziona la data di nascita (gg/mm/aaaa):
   
  <!-- Giorno -->
  <select name="giorno">
  <option value="">Scegli giorno: </option>
   
  <?php for ($i = 0; $i < 32; $i++): ?>
  <option value="<?= $i ?>"><?= $i ?></option>;
  <?php endfor; ?>
  </select>
   
  <!-- Mese -->
  <select name="mese">
  <option value="">Scegli mese: </option>
   
  <?php for ($i = 1; $i < 13; $i++): ?>
  <option value="<?= $i ?>"><?= $i ?></option>
  <?php endfor; ?>
  </select>

  <!-- Anno -->
  <select name="anno">
  <option value="">Scegli anno: </option>

  <?php for ($i = 2012; $i >= 1920; $i--): ?>
  <option value="<?= $i ?>"><?= $i ?></option>
  <?php endfor; ?>
  </select>


  <!-- Nuova nazionalità (non presente nella lista) -->
  <div id = "posnazionalita">
  <p>
  <label for="campo-nazionalita">Nazionalità: </label>
  <input type="text" name="nazionalita" required/>
  </p>
  </div>

   
  <!-- Nazionalità (lista di nazionalità già inserite, non compare se vuota) -->

  <?php if (!empty($nazionalite)): ?>
<select hidden="true" name="nazione"
<option value="">-seleziona-</option>

  <?php foreach ($nazionalite as $entry): ?>
  <option value="<?= $entry ?>"><?= $entry ?></option>
  <?php endforeach; ?>
</select>
<?php endif; ?>
   

  <!-- Nome utente -->
  <div id="posusername">
  <p>
  <label for="campo-username">Username: </label>
  <input type="text" name="username" required/>
  </p>
  </div>

   
  <!-- Email -->
  <div id="posemail">
  <p>
  <label for="campo-email">Email: </label>
  <input type="text" name="email" required/>
  </p>
  </div>

   
  <!-- Ripeti email -->
  <div id="posripemail">
  <p>
  <label for="campo-ripemail">Ripeti-Email: </label>
  <input type="text" name="ripemail" required/>
  </p>
  </div>


  <!-- Password -->
  <div id="pospassword">
  <p>
  <label for="campo-password">Password: </label>
  <input type="password" name="password" required/>
  </p>
  </div>


  <!-- Ripeti password -->
  <div id="posripassword">
  <p>
  <label for="campo-ripemail">Ripeti-Password: </label>
  <input type="password" name="rippassword" required/>
  </p>
  </div>

  <div align ="center">
  <input type="submit" name="reg" value="Invio dati" id="submit" />
  </div>
  </form>
  </div>
   
  <?php
   
  echo "</hr>";
  ?>
  </body>
</html>


E questo è il risultato che mi da:

Risultato_dopo_l_inserimento_dati.png
 

Ibernato

Utente Attivo
2 Giu 2016
70
6
8
31
Ma perchè apri sempre <DOCTYPE ECC. In una pagina deve starci un solo DOCTYPE, un solo tag HEAD e un solo tag BODY. Secondo me devi rivederti HTML perchè non sei molto pratico.
Questo è il cdice come dovrebbe essere scritto, ma non so se funziona poichè non ho il DB tuo a portata di mano.
PHP:
<?php
    require_once("connettimysqli.php"); 
    require_once("data.php");
    $query = "SELECT * FROM nome_tua_tabella_utenti";
    $result = mysqli_query($con, $query);
    if(!$result) echo "Errore Query";
    else{
        $row = mysqli_num_rows($result);
        if($row > 0) $indice = 1;
        else $indice = 0;
    }
?>
<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title>Modulo d'iscrizione</title>
        <link href="style.css" rel="stylesheet" type="text/css">
        <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.2/jquery.min.js"></script>
     
        <script>
            function funzione(indice){
                if(indice == 1){
                    $("#nazione").show();
                    $("#nazionalita").hide();
                }
                else {
                    $("#nazionalita").show();
                    $("#nazione").hide();
                }
            </script>
        </head>
        <body onLoad="funzione(<?php echo $indice ?>)">
         
            <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'] ?>">
                    <!-- Cognome -->
                    <p>
                        <label for="campo-cognome">Cognome: </label>
                        <input type="text" name="cognome" required />
                    </p>
                 
                    <!-- Nome -->
                    <p>
                        <label for="campo-nome">Nome: </label>
                        <input type="text" name="nome" required />
                    </p>
                 
                    <!-- Data di nascita -->
                    Seleziona la data di nascita (gg/mm/aaaa):
                 
                    <!-- Giorno -->
                    <select name="giorno">
                        <option value="">Scegli giorno: </option>
                     
                        <?php for ($i = 0; $i < 32; $i++): ?>
                        <option value="<?= $i ?>"><?= $i ?></option>;
                        <?php endfor; ?>
                    </select>
                 
                    <!-- Mese -->
                    <select name="mese">
                        <option value="">Scegli mese: </option>
                     
                        <?php for ($i = 1; $i < 13; $i++): ?>
                        <option value="<?= $i ?>"><?= $i ?></option>
                        <?php endfor; ?>
                    </select>
                 
                    <!-- Anno -->
                    <select name="anno">
                        <option value="">Scegli anno: </option>
                     
                        <?php for ($i = 2012; $i >= 1920; $i--): ?>
                        <option value="<?= $i ?>"><?= $i ?></option>
                        <?php endfor; ?>
                    </select>
                 
                 
                    <!-- Nuova nazionalità (non presente nella lista) -->
                    <div id = "posnazionalita">
                        <p>
                            <label for="campo-nazionalita">Nazionalità: </label>
                            <input type="text" name="nazionalita" required/>
                        </p>
                    </div>
                 
                 
                    <!-- Nazionalità (lista di nazionalità già inserite, non compare se vuota) -->
                 
                    <?php if (!empty($nazionalite)): ?>
                    <select hidden="true" name="nazione">
                    <option value="">-seleziona-</option>
                 
                    <?php foreach ($nazionalite as $entry): ?>
                    <option value="<?= $entry ?>"><?= $entry ?></option>
                    <?php endforeach; ?>
                </select>
                <?php endif; ?>
             
             
                <!-- Nome utente -->
                <div id="posusername">
                    <p>
                        <label for="campo-username">Username: </label>
                        <input type="text" name="username" required/>
                    </p>
                </div>
             
             
                <!-- Email -->
                <div id="posemail">
                    <p>
                        <label for="campo-email">Email: </label>
                        <input type="text" name="email" required/>
                    </p>
                </div>
             
             
                <!-- Ripeti email -->
                <div id="posripemail">
                    <p>
                        <label for="campo-ripemail">Ripeti-Email: </label>
                        <input type="text" name="ripemail" required/>
                    </p>
                </div>
             
             
                <!-- Password -->
                <div id="pospassword">
                    <p>
                        <label for="campo-password">Password: </label>
                        <input type="password" name="password" required/>
                    </p>
                </div>
             
             
                <!-- Ripeti password -->
                <div id="posripassword">
                    <p>
                        <label for="campo-ripemail">Ripeti-Password: </label>
                        <input type="password" name="rippassword" required/>
                    </p>
                </div>
             
                <div align ="center">
                    <input type="submit" name="reg" value="Invio dati" id="submit" />
                </div>
            </form>
        </div>
     
        <?php
         
            echo "</hr>";
        ?>
     
        <?php
        ////////////////////////////////////////////////////////////////////////
        // Controllo su dati inviati dal form
        // Se sono stai inviati dei dati, la richiesta di inserimento di un utente
        // viene elaborata
        if (!empty($_POST)) {
            // Lettura e validazione dei parametri
            $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']);
            $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']);
         
         
            // Controlla che la data inserita sia valida e la codifica nel formato aaaammgg
            if (!checkdate($mese, $giorno, $anno)) {
                echo "<p><strong>Errore</strong>: Data non valida</p>";
            }
            $nascita = sprintf("%04d%02d%02d", $anno, $mese, $giorno);
         
            // Inserimento 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 !== false) {
                echo "<p>Inserimento avvenuto correttamente<p>";
                } else {
                echo "<p>Inserimento non eseguito.<br />";
                echo '<strong>Errore</strong>: '.mysqli_error($con).'</p>';
            }
        }
     
    ?>
    </body>
</html>
 

paperinik4

Utente Attivo
29 Mag 2011
1.811
0
36
Roma
www.ricetteagogo.it
Sapevo che si potevano aprire e chiudere più dcotype e tah head. Per lo meno così avevo capito. Forse, azni da quello che mi dici credo proprio di aver capito male. A proposito, ma è giusto che ci sia prima il php e poi di seguito hmtl, e nel caso delle select della data sia mescolato html e php ???? Perchè sapevo che prima andava html di sopra e poi php.


P.S.: Ho provato il codice ma non compare la select alla seconda registrazione.
 

Ibernato

Utente Attivo
2 Giu 2016
70
6
8
31
Il php può essere mescolato all'html. Tu puoi fare per esempio un ciclo while in php
PHP:
<?php
  $i = 1;
while($i < = 5){
?>
<h3> Numero <?php echo $i ?> </h3> <br>
<?php
} //fine while
?>
e così ti stampa 5 i numeri da 1 a 5 uno sotto l'altro.
 
Discussioni simili
Autore Titolo Forum Risposte Data
A select dinamiche, errore assurdo, non compare la terza select Javascript 0
R Select concatenata che non funziona la seconda volta Ajax 3
X [Select] Valori chiave non presenti in un'altra tabella MySQL 2
alessandroz Select ... where... AND... aggiornamento PHP non funziona PHP 9
S Il metodo $.getJSON() e <select> che non si popola di dati per query troppo grandey Ajax 0
D [ASP.Net] Non elencare nella select i duplicati dallo split Classic ASP 9
otto9due Piccolo Script su select non funziona jQuery 2
asevenx [PHP] form con select che non invia dati se con apostrofo PHP 4
P le select vanno per i fatti loro e non a fianco alle label PHP 2
P due select che non vanno d'accordo fra di loro PHP 4
Monital [risolto] insert into if select non presente MySQL 7
M [risolto] Select non funziona dopo 8 record MySQL 8
H Problema con MySQL e PHP, dopo aver fatto una SELECT non ottengo alcun risultato PHP 7
neo996sps Non recupero il value in un select popolato da DB PHP 4
P Non riesco a mettere al centro i tasti e ingrandire la select PHP 10
M Select dinamica asp non funziona su chrome e ff -> si su ie...help Classic ASP 6
D SELECT DISTINCT non mi funziona Database 2
R switch che non funziona con select $_session PHP 3
L Select dinamiche - stampa ID e non il valore PHP 3
M select non deve restituire value Javascript 1
Silen select che non rimane selected PHP 3
D Select Case non vede le variabili Classic ASP 2
metalgemini select top 10 non funziona! Database 12
L Ripetere Campi disabilitando input in riferimento ad un valore della select jQuery 0
otto9due Ordinare option di una select Javascript 5
W MySQL ciclo in SELECT MySQL 0
W MySQL SELECT list dinamica MySQL 0
M Select Option dentro una Table jQuery 2
G Colorare menu select attraverso ricerca php PHP 0
L problema con query select PHP 2
F menù select dinamico da db in php PHP 3
D popolare campi tra th alla select PHP 36
M Estrarre valore con SELECT COUNT PHP 0
M Creare un campo input select quantità di un numero intero prelevato dal db PHP 3
L Select Dinamiche...da txt? PHP 3
E Php select option e ajax PHP 23
L select join e sottrazione punti PHP 13
L input dati con inser into select ? PHP 4
V hierarchy-select jQuery 0
Emix Select concatenate php sql ajax PHP 2
F query e form con select multipla PHP 17
T recupero valori select multipla da android Javascript 3
J php, scegliere autista da select e mostrare se ha fatto un incidente PHP 8
Tommy03 Select in ordine per numero di record MySQL 7
T problema con select dinamica con jquery Javascript 0
J Far comparire e scomparire un div con un select Javascript 1
M Opzioni select da 1 a 200 PHP 0
I Fatal error: Query Failed! SQL: SELECT * INTO OUTFILE PHP 1
C input in sostituzione della select PHP 2
G Insert into select - Aiuto MySQL 0

Discussioni simili