[PHP] Selezione con menu a tendina e recupero selezione

ugo.ugo

Nuovo Utente
19 Dic 2017
5
0
1
Buon Natale a tutti ,
sono autodidatta studiando sui vari form per la rete , ma , ovviamente, conoscendo poco le sintassi del HTML
ed PHP sono andato in crisi nel cercare di fare ciò che Vi descrivo: creato un DB con varie tabelle ,ho necessità di prelevare da un FORM, con una selezione a tendina, un nominativo ( da una tabella del DB ) e poterlo usare come variabile per utilizzarlo in altre selezioni o stampare a video sulla pagina html. Ho cercato e letto varie indicazioni ed esempi, ma non riesco a capire come recuperare la variabile del risultato della SELECT.Sarà sicuramente banale, ma io non ci arrivo.Il FORM funziona e posso selezionare il nominativo dal menu a tendina ( oltre un centinaio di possibilità ) ma poi nons o quale variabile usare per procedere con la seconda parte del programma. Inserisco il codice che ho :
HTML:
<html>

<head>
<title>Modulo Clienti</title>
</head>

<body>
Inserire dati: <br />
<form NAME="form inserimento" METHOD="POST" ACTION="">
 
 <div id="p_cli" style=text-align:left><!-- posiziona casella Cliente -->
      <label for="Cli">ELENCO  CLIENTI </label><BR>
      <label> Seleziona il nome :</label><BR>
      
      
        
<?php

// Richiamo connessione a MySQL con script
require 'condb.php';//$conn è la variabile di uscita



// ===Preparazione elenco per menu a tendina Cliente ====
  $Query1="SELECT * FROM Clienti ORDER BY Intestazione ";
 
       //esecuzione della query 
            $Legcli=mysqli_query($conn, $Query1) or die (mysqli_error());
       if(!$Legcli)
         print("<H2>Errore Query</H2>");
        
       else
  
       echo "<select name='ragionesoc'>";//Genera casella a discesa
       while ($row = mysqli_fetch_array($Legcli)) 
{ 
$Cliente1 = $row['Intestazione'] ;
$selected = ($Cliente == $Cliente1)?'selected':'';

echo "<option   value =\"$Cliente\"   $selected>$Cliente1</option>" ; //Popola casella ??
 
}
 echo "</select>";

?>
<br>
<input type="SUBMIT" NAME="Submit" VALUE="Invia" />
<input type="RESET" NAME="Cancel" VALUE="Azzera" />

</form>
</body>
</html>

<div id="p_cli" style=text-align:center><!-- posiziona casella Cliente -->
      <label for="Cli">ANAGRAFICA  CLIENTI </label>
    
<?php
 // query per leggere i dati memorizzati nel db secondo la scelta fatta prima ( select qui sopra)
 $anagra1 ="SELECT * FROM Clienti WHERE Intestazione = '...???...'";// cosa ci metto ?
   $anagra2 = mysqli_query($conn, $anagra1);

 
 // risultato in  array
  while($row = mysqli_fetch_array($anagra2))
 
{


echo "<br>"." RAGIONE SOCIALE  :  ";
echo $row['Intestazione']."<br>";

echo " INDIRIZZO  :  ";
echo $row['Indirizzo']."   ,";
echo $row['Numero Civico']."<br>";

echo " CAP :  ";echo $row['Cap'];
echo ".   . ";echo $row['Citta']."<br>";
echo ".    PROVINCIA  :  ";echo $row['Prov']."<br>";

echo " CODICE FISCALE  :  ";echo $row['C_F'];
echo " PARTITA IVA   :   ";echo $row['P_Iva']."<br>";
} 
 

 
?>

Grazie in anticipo per eventuali suggerimenti o link su cui riuscire a capire.
Saluti.
Ugo.ugo
 

macus_adi

Utente Attivo
5 Dic 2017
1.036
59
48
IT/SW
// query per leggere i dati memorizzati nel db secondo la scelta fatta prima ( select qui sopra) $anagra1 ="SELECT * FROM Clienti WHERE Intestazione = '...???...'";// cosa ci metto ? $anagra2 = mysqli_query($conn, $anagra1);
Hai inserito nella value della option il valore $Cliente quindi la query va eseguita su Clienti e non Intestazione.
PHP:
 $anagra1 ="SELECT * FROM Clienti WHERE Cliente= $Cliente";
Spero sia utile!
 

ugo.ugo

Nuovo Utente
19 Dic 2017
5
0
1
Buon giorno Macus_adi ,grazie per la risposta. Allora: ha provato a sostituire Intestazione con Cliente, ma nella mia tabella "Clienti" non ho un campo di nome 'Cliente' ed in effetti così facendo ,mi riporta i seguenti errori:
Notice: Undefined variable: Cliente in /var/www/html/menu_selezione.php on line 61

Warning: mysqli_fetch_array() expects parameter 1 to be mysqli_result, boolean given in /var/www/html/menu_selezione.php on line 66
dove alla riga 61 ho la modifica fatta.Avevo sritto Intestazione perchè intendevo paragonare il contenuto di quel campo con la selezione fatta, ma non so come estrarre la selezione.
Grazie
 

macus_adi

Utente Attivo
5 Dic 2017
1.036
59
48
IT/SW
Codice:
<option   value =\"$Cliente\"   $selected>$Cliente1</option>
$Cliente che tipo di dato è? Cosa rappresenta?? Dovresti effetuare la query sul DB sul valore contenuto da Cliente.
 

ugo.ugo

Nuovo Utente
19 Dic 2017
5
0
1
echo "<option value =\"$Cliente\" $selected>$Cliente1</option>" ; //Popola casella ??
Come dicevo non ho grandi conoscenze della sintassi ,infatti questa "option " l'ho adattata alla mia esigenza, e proprio per questo non sono in grado di ricavare la selezione da paragonare.Mi apettavo di poter prelevare dalla "select" una variabile che contenesse la scelta fatta.Forse se riuscissi a capire la sintassi esatta e la spiegazione dei parametri stessi della " option" riuscirei a fare ciò che mi serve. Si può scrivere un codice diverso ?Scusate la mia ignoranza .
 

ugo.ugo

Nuovo Utente
19 Dic 2017
5
0
1
Buon giorno e buone feste a tutti !
Qualche buona anima può aiutarmi a capire come risolvere ?
Scusate se insisto . Grazie e saluti a tutti