popolare campi tra th alla select

capita solo stesso cognome
posto nuovamente codice php:

Codice:
<?php
                  for ($i = 1; $i <= 1; ++$i) {
?>         
                  <b>* Socio:</b><select class="form-control" width="80%" required name="utente-<?php echo $i;?>" id="utente-<?php echo $i;?>">
                  <option value="" selected>Seleziona socio</option>
<?php
                    $result = $mysqli->query("SELECT sociapprovati2021.Cognome, sociapprovati2021.Nome FROM sociapprovati2021 ORDER BY sociapprovati2021.Cognome, sociapprovati2021.Nome", MYSQLI_USE_RESULT);
                    while($row = $result->fetch_assoc())
                    {
?>
                  <option value="<?php echo $row['Cognome']."*". $row['Nome'];?>"><?php echo $row['Cognome']." ". $row['Nome'];?></option>
                  <br /><br />
<?php
                    }
                    $result->close();
?>
                </select>
                </div>
<table class='table table-bordered'>
<tr style="background-color:#fff; border:2px solid #bdbebd">
<th>Annuale</th><th style="background-color:#e9e9e9; border:2px solid #bdbebd"></th><th>Arma lunga</th><th style="background-color:#e9e9e9; border:2px solid #bdbebd"></th><th>Privèe</th><th style="background-color:#e9e9e9; border:2px solid #bdbebd"></th>
</tr>
</table><hr />
 
Ecco qui. Ho lasciato nominativo, ma tu puoi tranquillamente lasciare cognome, basta sostituirlo nel programma; tanto, quando (e se) si presenterà il problema, ci si penserà
 
Ultima modifica:
Ecco qui. Ho lasciato nominativo, ma tu puoi tranquillamente lasciare cognome, basta sostituirlo nel programma; tanto, quando (e se) si presenterà il problema, ci si penserà
perdonami ma non sembra funzionare, alla selezione del nome non accade nulla. altra cosa, come faccio a vedere il php da integrare al mio codice?
 
Un problema alla volta sennò ci incasiniamo ancora di più: una volta selezionato il direttore e il socio appare, sotto la select-box del socio, una tabella con i campi annuale, arma lunga e privee di quel socio. In pratrica come prima ma senza il pulsante invia. Io l'ho provato adesso e funziona (ho cliccato sul link 'qui'). Intanto guarda se funziona, poi ti posto il codice.
 
Ultima modifica:
Un problema alla volta sennò ci incasiniamo ancora di più: una volta selezionato il direttore e il socio appare, sotto la select-box del socio, una tabella con i campi annuale, arma lunga e privee di quel socio. In pratrica come prima ma senza il pulsante invia. Io l'ho provato adesso e funziona (ho cliccato sul link 'qui'). Intanto guarda se funziona, poi ti posto il codice.
ok funziona solo con explorer e firefox ma non con chrome. ho appena provato
 
Guarda, trattandosi di una libreria (jQuery), all'inizio del programma ho inserito un link per scaricarla; oltrettutto io uso firefox e dato che tutto funzionava non ho fatto ulteriori contrtolli. La versione che scarica è quella minimizzata, probabilmente (non sono espertissimo) cci vuole un'altra versione. Magari ti mando il codice e provi con le varie versioni. Fammi sapere
 
Guarda, trattandosi di una libreria (jQuery), all'inizio del programma ho inserito un link per scaricarla; oltrettutto io uso firefox e dato che tutto funzionava non ho fatto ulteriori contrtolli. La versione che scarica è quella minimizzata, probabilmente (non sono espertissimo) cci vuole un'altra versione. Magari ti mando il codice e provi con le varie versioni. Fammi sapere
si il jquery in effetti lo vedo ma ovviamente non vedo il php. potresti mandarmi il codice php integrato al mio che faccio delle prove se per te non è un problema? dimmi tu se vuoi postarlo quì oppure ti mando via mail il mio file
 
Codice:
<!DOCTYPE html>
<html>
<head>
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
<title></title>
</head>

<body>
<?php
echo '<h2><b>Compila singolo ingresso</b></h2>';
$data = date('d/m/Y');
echo '<br><br>Data: '.$data;
echo '<br><br>Seleziona direttore di turno: ';
echo '<select name="dirett">';
echo '    <option value=""> </option>';
echo '    <option value="pippo">pippo</option>';
echo '    <option value="pluto">pluto</option>';
echo '    <option value="paperino">paperino</option>';
echo '    <option value="topolino">topolino</option>';
echo '</select>';
echo '<br><br>Seleziona socio: ';
echo '<select name="socio">';
echo '    <option value=""> </option>';

//               leggo il DB

include('conn.php');

//************stringa di connessione al DB*************

$connessione = new mysqli($host, $user, $password, $db);

// verifica su eventuali errori di connessione
if ($connessione->connect_errno) {
    echo "Connessione fallita: ". $connessione->connect_error . ".";
    exit();
}
if (!$result = $connessione->query("SELECT * FROM SOCI order by NOMINATIVO")) {
    echo "Errore della query: " . $connessione->error . ".";
}else{
    // conteggio dei record
    if($result->num_rows > 0) {
       // conteggio dei record restituiti dalla query
       while($row = $result->fetch_array(MYSQLI_ASSOC)) {
             $nominativo = $row['NOMINATIVO'];
             
             echo '<option value="'.$nominativo.'" onclick="selsoc(this)">'.$nominativo.'</option>';
       }
       echo '</select>';
       // liberazione delle risorse occupate dal risultato
       $result->close();
    }
}
?>
<div id="tabella"></div>
<script>
function selsoc(minni) {
$(document).ready(function() {
    var socio=minni.value;

    $.ajax({
        type:  'post'
        cache: false,
        url:  'contr.php',
        data: 'query='+socio,
        success:function(html) {
            $('#tabella').html(html);
        },
        error: function(request, status, error) {
            $('#tabella').html('<br />ERRORE : il server non risponde'+request.responseText);
        }
    });
});
};

</script>

</body>
</html>



Questo è il codice HTML del form; come vedi all'inizio ho inserito un link per scricare jQuery, se ti colleghi al sito ufficiale puoi provare tu stesso le varie versioni. Io comunque ti sconsiglio di usare nel link un indirizzo assoluto (http://..... l'ho messo solo per comodità) in quanto se, x una malaugurata ipotesi, il sito in quel momento non fosse disponibile, il programma non funziona, quindi ti suggerisco di scasricare tu stesso la libreria (copia e incolla su BloccoNote) rinominarla, salvarla nella sstessa directory del programma e inserire nel link un indirizzo relativo direfttamentfe a quel file.


Codice:
<?php
$socio=$_POST['query'];

//-----------leggo il DB

include('conn.php');


//************stringa di connessione al DB*************

$connessione = new mysqli($host, $user, $password, $db);

// verifica su eventuali errori di connessione
if ($connessione->connect_errno) {
    echo "Connessione fallita: ". $connessione->connect_error . ".";
    exit();
}

if (!$result = $connessione->query("SELECT * FROM SOCI WHERE NOMINATIVO='$socio'")) {
    echo "Errore della query: " . $connessione->error . ".";
}else{
    // conteggio dei record
    if($result->num_rows > 0) {
       // conteggio dei record restituiti dalla query
       while($row = $result->fetch_array(MYSQLI_ASSOC)) {
             $ann = $row['ANNUALE'];
             $armal = $row['ARMA_LUNGA'];
             $priv = $row['PRIVEE'];
       }
       // liberazione delle risorse occupate dal risultato
       $result->close();
    }
}

echo '<br><br><br><table border="1" width="400" cellspacing="0">';
echo '     <tr height="40">';
echo '         <th>ANNUALE</th>';
echo '         <th>ARMA LUNGA</th>';
echo '         <th>PRIVEE</th>';
echo '     </tr>';
echo '     <tr height="30">';
echo '         <td><center>'.$ann.'</center></td>';
echo '         <td><center>'.$armal.'</center></td>';
echo '         <td><center>'.$priv.'</center></td>';
echo '     </tr>';
echo '</table>';
?>


Questo invece è il codice PHP. All'inizio ho messo un include: il file contiene le variabili di connessione.
 
Codice:
<!DOCTYPE html>
<html>
<head>
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
<title></title>
</head>

<body>
<?php
echo '<h2><b>Compila singolo ingresso</b></h2>';
$data = date('d/m/Y');
echo '<br><br>Data: '.$data;
echo '<br><br>Seleziona direttore di turno: ';
echo '<select name="dirett">';
echo '    <option value=""> </option>';
echo '    <option value="pippo">pippo</option>';
echo '    <option value="pluto">pluto</option>';
echo '    <option value="paperino">paperino</option>';
echo '    <option value="topolino">topolino</option>';
echo '</select>';
echo '<br><br>Seleziona socio: ';
echo '<select name="socio">';
echo '    <option value=""> </option>';

//               leggo il DB

include('conn.php');

//************stringa di connessione al DB*************

$connessione = new mysqli($host, $user, $password, $db);

// verifica su eventuali errori di connessione
if ($connessione->connect_errno) {
    echo "Connessione fallita: ". $connessione->connect_error . ".";
    exit();
}
if (!$result = $connessione->query("SELECT * FROM SOCI order by NOMINATIVO")) {
    echo "Errore della query: " . $connessione->error . ".";
}else{
    // conteggio dei record
    if($result->num_rows > 0) {
       // conteggio dei record restituiti dalla query
       while($row = $result->fetch_array(MYSQLI_ASSOC)) {
             $nominativo = $row['NOMINATIVO'];
            
             echo '<option value="'.$nominativo.'" onclick="selsoc(this)">'.$nominativo.'</option>';
       }
       echo '</select>';
       // liberazione delle risorse occupate dal risultato
       $result->close();
    }
}
?>
<div id="tabella"></div>
<script>
function selsoc(minni) {
$(document).ready(function() {
    var socio=minni.value;

    $.ajax({
        type:  'post'
        cache: false,
        url:  'contr.php',
        data: 'query='+socio,
        success:function(html) {
            $('#tabella').html(html);
        },
        error: function(request, status, error) {
            $('#tabella').html('<br />ERRORE : il server non risponde'+request.responseText);
        }
    });
});
};

</script>

</body>
</html>



Questo è il codice HTML del form; come vedi all'inizio ho inserito un link per scricare jQuery, se ti colleghi al sito ufficiale puoi provare tu stesso le varie versioni. Io comunque ti sconsiglio di usare nel link un indirizzo assoluto (http://..... l'ho messo solo per comodità) in quanto se, x una malaugurata ipotesi, il sito in quel momento non fosse disponibile, il programma non funziona, quindi ti suggerisco di scasricare tu stesso la libreria (copia e incolla su BloccoNote) rinominarla, salvarla nella sstessa directory del programma e inserire nel link un indirizzo relativo direfttamentfe a quel file.


Codice:
<?php
$socio=$_POST['query'];

//-----------leggo il DB

include('conn.php');


//************stringa di connessione al DB*************

$connessione = new mysqli($host, $user, $password, $db);

// verifica su eventuali errori di connessione
if ($connessione->connect_errno) {
    echo "Connessione fallita: ". $connessione->connect_error . ".";
    exit();
}

if (!$result = $connessione->query("SELECT * FROM SOCI WHERE NOMINATIVO='$socio'")) {
    echo "Errore della query: " . $connessione->error . ".";
}else{
    // conteggio dei record
    if($result->num_rows > 0) {
       // conteggio dei record restituiti dalla query
       while($row = $result->fetch_array(MYSQLI_ASSOC)) {
             $ann = $row['ANNUALE'];
             $armal = $row['ARMA_LUNGA'];
             $priv = $row['PRIVEE'];
       }
       // liberazione delle risorse occupate dal risultato
       $result->close();
    }
}

echo '<br><br><br><table border="1" width="400" cellspacing="0">';
echo '     <tr height="40">';
echo '         <th>ANNUALE</th>';
echo '         <th>ARMA LUNGA</th>';
echo '         <th>PRIVEE</th>';
echo '     </tr>';
echo '     <tr height="30">';
echo '         <td><center>'.$ann.'</center></td>';
echo '         <td><center>'.$armal.'</center></td>';
echo '         <td><center>'.$priv.'</center></td>';
echo '     </tr>';
echo '</table>';
?>


Questo invece è il codice PHP. All'inizio ho messo un include: il file contiene le variabili di connessione.
ho provato a mettere tutto il codice su un file prova ma non ho capito dove sbaglio

Codice:
<!DOCTYPE html>
<html>
<head>
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
<title></title>
</head>

<body>
<?php
echo '<h2><b>Compila singolo ingresso</b></h2>';
$data = date('d/m/Y');
echo '<br><br>Data: '.$data;
echo '<br><br>Seleziona direttore di turno: ';
echo '<select name="dirett">';
echo '    <option value=""> </option>';
echo '    <option value="pippo">pippo</option>';
echo '    <option value="pluto">pluto</option>';
echo '    <option value="paperino">paperino</option>';
echo '    <option value="topolino">topolino</option>';
echo '</select>';
echo '<br><br>Seleziona socio: ';
echo '<select name="socio">';
echo '    <option value=""> </option>';

//               leggo il DB

include('conn.php');

//************stringa di connessione al DB*************

$connessione = new mysqli($host, $user, $password, $db);

// verifica su eventuali errori di connessione
if ($connessione->connect_errno) {
    echo "Connessione fallita: ". $connessione->connect_error . ".";
    exit();
}
if (!$result = $connessione->query("SELECT * FROM sociapprovati2021 order by Cognome")) {
    echo "Errore della query: " . $connessione->error . ".";
}else{
    // conteggio dei record
    if($result->num_rows > 0) {
       // conteggio dei record restituiti dalla query
       while($row = $result->fetch_array(MYSQLI_ASSOC)) {
             $Cognome = $row['Cognome'];
            
             echo '<option value="'.$Cognome.'" onclick="selsoc(this)">'.$Cognome.'</option>';
       }
       echo '</select>';
       // liberazione delle risorse occupate dal risultato
       $result->close();
    }
}
?>
<div id="tabella"></div>
<script>
function selsoc(minni) {
$(document).ready(function() {
    var socio=minni.value;

    $.ajax({
        type:  'post'
        cache: false,
        url:  'contr.php',
        data: 'query='+socio,
        success:function(html) {
            $('#tabella').html(html);
        },
        error: function(request, status, error) {
            $('#tabella').html('<br />ERRORE : il server non risponde'+request.responseText);
        }
    });
});
};

</script>

</body>
</html>
<?php
$Cognome=$_POST['query'];

//-----------leggo il DB

include('conn.php');


//************stringa di connessione al DB*************

$connessione = new mysqli($host, $user, $password, $db);

// verifica su eventuali errori di connessione
if ($connessione->connect_errno) {
    echo "Connessione fallita: ". $connessione->connect_error . ".";
    exit();
}

if (!$result = $connessione->query("SELECT * FROM sociapprovati2021 WHERE Cognome='$Cognome'")) {
    echo "Errore della query: " . $connessione->error . ".";
}else{
    // conteggio dei record
    if($result->num_rows > 0) {
       // conteggio dei record restituiti dalla query
       while($row = $result->fetch_array(MYSQLI_ASSOC)) {
             $Abb_Annuale = $row['Abb_Annuale'];
             $Arma_Lunga = $row['Arma_Lunga'];
             $Abb_Privee = $row['Abb_Privee'];
       }
       // liberazione delle risorse occupate dal risultato
       $result->close();
    }
}

echo '<br><br><br><table border="1" width="400" cellspacing="0">';
echo '     <tr height="40">';
echo '         <th>ANNUALE</th>';
echo '         <th>ARMA LUNGA</th>';
echo '         <th>PRIVEE</th>';
echo '     </tr>';
echo '     <tr height="30">';
echo '         <td><center>'.$Abb_Annuale.'</center></td>';
echo '         <td><center>'.$Arma_Lunga.'</center></td>';
echo '         <td><center>'.$Abb_Privee.'</center></td>';
echo '     </tr>';
echo '</table>';
?>

cosa sto sbagliando?
 
Devi creare tre diversi script, separati, tuttie tre con estensione.php: uno, che puoi chiamare come vuoi, con cui selezini direttore e socio, un altro che controlla (legge) il nome del socio selezionato
Codice:
$socio=$_POST['query'];
e legge il BD valorizzando i campi di quel socio e che dovrai nominare contr.php, e un altro, nominato conn.php, contenente le variabili di connessione
 
Ultima modifica:
Devi creare tre diversi script, separati, tuttie tre con estensione.php: uno, che puoi chiamare come vuoi, con cui selezini direttore e socio, un altro che controlla (legge) il nome del socio selezionato
Codice:
$socio=$_POST['query'];
e legge il BD valorizzando i campi di quel socio e che dovrai nominare contr.php, e un altro, nominato conn.php, contenente le variabili di connessione
perdona la mia ignoranza ma non ho capito, conn.php ok ma i dati di connessione li ho già nel file index.php all'inizio tipo:

Codice:
include_once("../../function.php");
$today = date("d/m/Y");
$mysqli = new mysqli('XX.XX.XXX.XXX', 'SqlXXXXXXX', 'PASSWORD', 'SqlXXXXXXX_3');
$mysqli->autocommit(true);

?>

ma nello stesso file index come integro il codice?

se vuoi provo a postare il codice intero della index
 
perdona la mia ignoranza ma non ho capito, conn.php ok ma i dati di connessione li ho già nel file index.php all'inizio tipo:

Codice:
include_once("../../function.php");
$today = date("d/m/Y");
$mysqli = new mysqli('XX.XX.XXX.XXX', 'SqlXXXXXXX', 'PASSWORD', 'SqlXXXXXXX_3');
$mysqli->autocommit(true);

?>

ma nello stesso file index come integro il codice?

se vuoi provo a postare il codice intero della index
ho creato i tre file con nomi:
conn.php
form.php
contr.php
rispettivamente con i seguenti codici:

Codice:
<?php

$host = "XX.XX.XXX.XXX";
$user = "SqlXXXXXXX";
$password = "XXXXXXXXXXX";
$db = "SqlXXXXXXX_3";

?>

Codice:
<!DOCTYPE html>
<html>
<head>
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
<title></title>
</head>

<body>
<?php
echo '<h2><b>Compila singolo ingresso</b></h2>';
$data = date('d/m/Y');
echo '<br><br>Data: '.$data;
echo '<br><br>Seleziona direttore di turno: ';
echo '<select name="dirett">';
echo '    <option value=""> </option>';
echo '    <option value="pippo">pippo</option>';
echo '    <option value="pluto">pluto</option>';
echo '    <option value="paperino">paperino</option>';
echo '    <option value="topolino">topolino</option>';
echo '</select>';
echo '<br><br>Seleziona socio: ';
echo '<select name="socio">';
echo '    <option value=""> </option>';

//               leggo il DB

include('conn.php');

//************stringa di connessione al DB*************

$connessione = new mysqli($host, $user, $password, $db);

// verifica su eventuali errori di connessione
if ($connessione->connect_errno) {
    echo "Connessione fallita: ". $connessione->connect_error . ".";
    exit();
}
if (!$result = $connessione->query("SELECT * FROM sociapprovati2021 order by Cognome")) {
    echo "Errore della query: " . $connessione->error . ".";
}else{
    // conteggio dei record
    if($result->num_rows > 0) {
       // conteggio dei record restituiti dalla query
       while($row = $result->fetch_array(MYSQLI_ASSOC)) {
             $Cognome = $row['Cognome'];
            
             echo '<option value="'.$Cognome.'" onclick="selsoc(this)">'.$Cognome.'</option>';
       }
       echo '</select>';
       // liberazione delle risorse occupate dal risultato
       $result->close();
    }
}
?>
<div id="tabella"></div>
<script>
function selsoc(minni) {
$(document).ready(function() {
    var Cognome=minni.value;

    $.ajax({
        type:  'post'
        cache: false,
        url:  'contr.php',
        data: 'query='+Cognome,
        success:function(html) {
            $('#tabella').html(html);
        },
        error: function(request, status, error) {
            $('#tabella').html('<br />ERRORE : il server non risponde'+request.responseText);
        }
    });
});
};

</script>

</body>
</html>

Codice:
<?php
$Cognome=$_POST['query'];

//-----------leggo il DB

include('conn.php');


//************stringa di connessione al DB*************

$connessione = new mysqli($host, $user, $password, $db);

// verifica su eventuali errori di connessione
if ($connessione->connect_errno) {
    echo "Connessione fallita: ". $connessione->connect_error . ".";
    exit();
}

if (!$result = $connessione->query("SELECT * FROM sociapprovati2021 WHERE Cognome='$Cognome'")) {
    echo "Errore della query: " . $connessione->error . ".";
}else{
    // conteggio dei record
    if($result->num_rows > 0) {
       // conteggio dei record restituiti dalla query
       while($row = $result->fetch_array(MYSQLI_ASSOC)) {
             $Abb_Annuale = $row['Abb_Annuale'];
             $Arma_Lunga = $row['Arma_Lunga'];
             $Abb_Privee = $row['Abb_Privee'];
       }
       // liberazione delle risorse occupate dal risultato
       $result->close();
    }
}

echo '<br><br><br><table border="1" width="400" cellspacing="0">';
echo '     <tr height="40">';
echo '         <th>ANNUALE</th>';
echo '         <th>ARMA LUNGA</th>';
echo '         <th>PRIVEE</th>';
echo '     </tr>';
echo '     <tr height="30">';
echo '         <td><center>'.$Abb_Annuale.'</center></td>';
echo '         <td><center>'.$Arma_Lunga.'</center></td>';
echo '         <td><center>'.$Abb_Privee.'</center></td>';
echo '     </tr>';
echo '</table>';
?>

ma non capisco anche se fatto in maniera senza integrarlo al mio codice non va
 
Ma il mio codice (quando hai cliccato sul link) ti funzionava? Eventualmente te lo rimetto; eccolo


PS Io l'ho testato con Firefox
 

Discussioni simili