+ Rispondi al Thread
Visualizzazione dei risultati da 1 a 4 su 4

Discussione: Non riesco a prelevare un valore da una select HTML

  1. #1
    L'avatar di Gandalfrank
    Gandalfrank non è in linea Scribacchino
    Luogo
    Pisa
    Post
    1,195

    Non riesco a prelevare un valore da una select HTML

    In un file HTML ho una form con dentro alcuni controlli tra cui una SELECT dalla quale posso scegliere 2 opzioni
    In un file PHP prelevo tutti i valori dei controlli e li inserisco in un comando SQL UPDATE.

    Il problema è questo:

    La prima volta che uso la FORM, indipendentemente da quale opzione scelgo, nel file PHP viene prelevato SOLTANTO il valore dell'opzione che risulta selezionato all'apertura del file HTML.

    HTML:
    codice:
    <form method="POST" action="Modifica_Campionato.php">
        		<table>
                    <caption>Modifica Campionato</caption>
        		<tr>
        				<th>Codice Partita</th>
                                    <th>Data Partita</th>
        				<th colspan="2">Squadra Casa</th>
        				<th colspan="2">Squadra Ospite</th>
        				<th colspan="2">Tipologia</th>
        				<th colspan="2">Categoria</th>
        			</tr>
        			<tr>
                                    <td><input type="text" size=4 name="_codice_partita"></td>
        				<td><input type="text" size=10 name="_data_partita"></td>
        				<td colspan="2"><input type="text" size=20 name="_squadra_casa"></td>
        				<td colspan="2"><input type="text" size=20 name="_squadra_ospite"></td>
        				<td colspan="2">
        					<select name="_tipologia">
        						<option value="Amichevole">Amichevole</option>
        						<option value="Campionato">Campionato</option>
        						<option value="Torneo">Torneo</option>
        					</select>
        				</td>
        				<td colspan="2">
        					<select name="_categoria">
        						<option value="Aquilotti">Aquilotti</option>
        						<option value="Esordienti">Esordienti</option>
        					</select>
        				</td>
                    </tr>
                    <tr>
                                    <th colspan="2">Risultato Finale</th>
        				<th>Parziale 1 Tempo</th>
        				<th>Parziale 2 Tempo</th>
        				<th>Parziale 3 Tempo</th>
        				<th>Parziale 4 Tempo</th>
        				<th>Parziale 5 Tempo</th>
        				<th>Parziale 6 Tempo</th>
        				<th>Parziale 7 Tempo</th>
        				<th>Parziale 8 Tempo</th>
                    </tr>
                    <tr>
                        <td colspan="2"><input type="text" size=6 name="_finale"></td>
        				<td><input type="text" size=6 name="_parziale_1T"></td>
        				<td><input type="text" size=6 name="_parziale_2T"></td>
        				<td><input type="text" size=6 name="_parziale_3T"></td>
        				<td><input type="text" size=6 name="_parziale_4T"></td>
        				<td><input type="text" size=6 name="_parziale_5T"></td>
        				<td><input type="text" size=6 name="_parziale_6T"></td>
        				<td><input type="text" size=6 name="_parziale_7T"></td>
        				<td><input type="text" size=6 name="_parziale_8T"></td>
                    </tr>
                    <tr>
                        <td id="pulsante" colspan="10">
                            <input type="submit" value="Modifica">
                            <input type="reset" value="Cancella" >
                        </td>
                    </tr>
                </table>
        	</form>
    PHP:
    codice:
    <?php
    	$connessione=mysqli_connect("localhost","********","********","Basket");
    
    	if (mysqli_connect_errno())
          {
          	echo "Failed to connect to MySQL: " . mysqli_connect_error();
          }
          
    	$chkInserimento=TRUE; // TRUE= inserimento dati POSSIBILE; FALSE= inserimento dati NEGATO;
    
    	$codice_partita = $_POST['_codice_partita'];
    	if($codice_partita=="")
    	{
    		echo"<p>Inserire il CODICE della partita.</p>";
    		$chkInserimento=FALSE;
    	}
    
    	$data_partita = $_POST['_data_partita'];
    	if($data_partita=="")
    	{
    		echo"<p>Inserire la DATA della partita.</p>";
    		$chkInserimento=FALSE;
    	}
    	
          $squadra_casa = $_POST['_squadra_casa'];
          if($squadra_casa=="")
    	{
    		echo"<p>Inserire la SQUADRA di CASA della partita.</p>";
    		$chkInserimento=FALSE;
    	}
    	
    	$squadra_ospite = $_POST['_squadra_ospite'];
    	if($squadra_ospite=="")
    	{
    		echo"<p>Inserire la SQUADRA OSPITE della partita.</p>";
    		$chkInserimento=FALSE;
    	}
    	
    	$tipologia = $_POST['_tipologia'];
    	$categoria = $_POST['_categoria'];
    	
    	$finale = $_POST['_finale'];
    	if($finale=="") $finale=="0-0";
    	
    	$parziale_1T = $_POST['_parziale_1T'];
    	if($parziale_1T=="") $parziale_1T=="0-0";
    	
    	$parziale_2T = $_POST['_parziale_2T'];
    	if($parziale_2T=="") $parziale_2T=="0-0";
    	
    	$parziale_3T = $_POST['_parziale_3T'];
    	if($parziale_3T=="") $parziale_3T=="0-0";
    	
    	$parziale_4T = $_POST['_parziale_4T'];
    	if($parziale_4T=="") $parziale_4T=="0-0";
    	
    	$parziale_5T = $_POST['_parziale_5T'];
    	if($parziale_5T=="" && $categoria="Aquilotti") $parziale_5T=="0-0";
    	
    	$parziale_6T = $_POST['_parziale_6T'];
    	if($parziale_6T=="" && $categoria="Aquilotti") $parziale_6T=="0-0";
    	
    	$parziale_7T = $_POST['_parziale_7T'];
    	
    	$parziale_8T = $_POST['_parziale_8T'];
    
    	if($chkInserimento)
    	{	
    		$query="UPDATE Campionato SET Data_Partita='$data_partita', Squadra_Casa='$squadra_casa', Squadra_Ospite='$squadra_ospite', Tipologia='$tipologia', Categoria='$categoria', Risultato_Finale='$finale', Parziale_1T='$parziale_1T', Parziale_2T='$parziale_2T', Parziale_3T='$parziale_3T', Parziale_4T='$parziale_4T', Parziale_5T='$parziale_5T', Parziale_6T='$parziale_6T', Parziale_7T='$parziale_7T', Parziale_8T='$parziale_8T' WHERE Codice_Partita='$codice_partita'";
    		
            $result=mysqli_query($connessione,$query);
    	
    		if($result)
    			echo("<br>Tabella CAMPIONATO modificata correttamente");
    		else
    			echo("<br>Modifica non eseguita");
        }
    ?>
    Praticamente OGNI volta che avvio il file HTML la categoria rilevata risulta sempre e solo "AQUILOTTI" anche se mi assicuro di averla cambiata in "ESOEDIENTI". L'altra SELECT, Tipologia, non manifesta nessun problema.

    Perché?

  2. #2
    L'avatar di Gandalfrank
    Gandalfrank non è in linea Scribacchino
    Luogo
    Pisa
    Post
    1,195
    Esistono situazioni nella quali il codice che ho usato può non funzionare adeguatamente? (tipo di Browser, conflitto di funzioni...) Non conosco PHP, ho iniziato a studiarlo da poco tempo e per la realizzazione del mio piccolo progetto mi sono limitato ad usare il codice trovato in rete sul sito https://www.w3schools.com adattandolo alla mie esigenze.
    Quali possono essere le cause per cui un parametro inserito in una form non viene letto/catturato dal metodo POST di PHP?

  3. #3
    L'avatar di Brontolo
    Brontolo non è in linea Very Important Person
    Post
    2,702
    Sei sicuro? hai provato a mettere un
    Codice PHP:
    echo $_POST['_categoria']; 
    all'inizio del codice php?
    Il regolamento del forum: la prima cosa da leggere.

  4. #4
    L'avatar di Gandalfrank
    Gandalfrank non è in linea Scribacchino
    Luogo
    Pisa
    Post
    1,195
    Inghippo trovato.
    Come hai suggerito ho controllato il valore della variabile e ho constatato che restava sempre e solo "Aquilotti" (a titolo informativo è una categoria del MiniBasket).
    L'errore era in queste linee:
    codice:
    $parziale_5T = $_POST['_parziale_5T'];
    if($parziale_5T=="" && $categoria="Aquilotti") $parziale_5T=="0-0";
    	
    $parziale_6T = $_POST['_parziale_6T'];
    if($parziale_6T=="" && $categoria="Aquilotti") $parziale_6T=="0-0";
    Ho usato il simbolo di assegnazione (=) anziché di uguaglianza (==).

+ Rispondi al Thread

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi