Select dinamiche

WottaFacca

Utente Attivo
20 Mar 2015
134
0
0
Desenzano d/G
Ho trovato sul forum un'esercizio simile già fatto,questo fatto da @criric.

Ho provato a modificarlo, sistemandolo con le tabelle che ho io ma non riesco a farlo funzionare, il codice è questo

HTML:
<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <meta name="generator" content="AlterVista - Editor HTML"/>
  <title></title>
   <title>Comuni italiani</title>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <script src="http://code.jquery.com/jquery-latest.min.js" type="text/javascript"></script>
        <style type="text/css">
            div.ricerca {
                line-height: 34px;
            }
            div.ricerca span {
                display: inline-block;
                width: 110px;
                text-align: right;
                padding-right: 4px;
            }
			
        </style>
		
        <script type="text/javascript">
            $(document).ready(function(){
                comuni();
                $("select").change(function(){
                    comuni();
                })
            })
            function comuni() {                
                $.ajax({
                    type: "POST",
                    url: "prova.php",
                    data: $("#ricerca").serialize(),
                    success: function(response){
                        eval(response);
                    }
                }); 
            }
        </script>
  
</head>
<body>

<html>
       
        <div class="ricerca">
            <form id="ricerca">
                <span>Folder :</span>
                <select name="IDFolder">
                    <option value=""></option>
                </select><br/>
                <span>Capsule :</span>
                <select name="IDCapsule">
                    <option value=""></option>
                </select><br/>
                <span>Report :</span>
                <select name="IDReport">
                    <option value=""></option>
                </select>
            </form>
        </div>

</body>
</html>

PHP:
  <?php

// recupero valori delle select
$folder = $_REQUEST['IDFolder'];
$capsule = $_REQUEST['IDCapsule'];
$report = $_REQUEST['IDReport'];

// mi connetto al database
$sql = new mysqli("localhots", "xxx", "xxx","nomeDB");

// estraggo tutte le regioni
$query = "SELECT IDFolder FROM folder";
$result = $sql->query($query);

// svuoto la select regione
echo "$('select[name=\"IDFolder\"]').empty();";

// aggiungo una option vuota
echo "$('select[name=\"IDFolder\"]').append('<option value=\"\"></option>');";

// ciclo i risultati della query
while ($row = $result->fetch_array(MYSQLI_ASSOC)) {
    // imposto il selected sull'eventuale regione scelta
    $selected = "";
    if ($row['IDFolder'] == $folder) {
        $selected = "selected=\"selected\"";
    }

// popolo la select
    echo "$('select[name=\"IDFolder\"]').append('<option $selected value=\"" . $row['IDFolder'] . "\">" . addslashes($row['IDFolder']) . "</option>');";
}

// se è stata scelta una regione
if (!empty($folder)) {
    // estraggo le province della regione scelta
    $query = "SELECT IDCapsule FROM capsule WHERE IDFolder ='$folder'";
    $result = $sql->query($query);
    // svuoto la select provincia
    echo "$('select[name=\"IDCapsule\"]').empty();";
    // aggiungo una option vuota
    echo "$('select[name=\"IDCapsule\"]').append('<option value=\"\"></option>');";
    // ciclo i risultati della query
    while ($row = $result->fetch_array(MYSQLI_ASSOC)) {
        // imposto il selected sull'eventuale provincia scelta
        $selected = "";
        if ($row['IDCapsule'] == $capsule) {
            $selected = "selected=\"selected\"";
        }
        // popolo la select
        echo "$('select[name=\"provincia\"]').append('<option $selected value=\"" . $row['IDFolder'] . "\">" . addslashes($row['IDCapsule']) . "</option>');";
    }
}

// se è stata scelta una provincia
if (!empty($capsule)) {
    // estraggo i comuni della provincia scelta
    $query = "SELECT IDReport FROM report WHERE IDCapsule ='$capsule'";
    $result = $sql->query($query);
    // svuoto la select comune
    echo "$('select[name=\"IDReport\"]').empty();";
    // aggiungo una option vuota
    echo "$('select[name=\"IDReport\"]').append('<option value=\"\"></option>');";
    // ciclo i risultati della query
    while ($row = $result->fetch_array(MYSQLI_ASSOC)) {
        // imposto il selected sull'eventuale comune scelto
        $selected = "";
        if ($row['IDCapsule'] == $report) {
            $selected = "selected=\"selected\"";
        }
        // popolo la select
        echo "$('select[name=\"IDReport\"]').append('<option $selected value=\"" . $row['IDCapsule'] . "\">" . utf8_encode(addslashes($row['IDReport'])) . "</option>');";
    }
}
?>

le tabelle hanno già tutti i dati inseriti e sono strutturate in questo modo:

folder: IDFolder, Descrizione
capsule: IDFolder,IDCapsule,Descrizione
report: IDFolder,IDCapsule,IDReport,Descrizione


Grazie mille in anticipo per chiunque provi ad aiutarmi :)

WottaFacca
 
Ultima modifica:
Rettifica

Sono riuscito a sistemare il tutto in modo da far funzionare i 3 menù a tendina, ma adesso ho bisogno di aggiungere una textarea e un bottone, che inviano i dati selezionati + la descrizione inserita nella textarea ad una nuova tabella.

Grazie in anticipo per chi riesce ad aiutarmi

WottaFacca
 
Ciao, devi inserirli tra i tag <form> e <form> aggiungi al tag <form> action e method e il gioco è fatto
HTML:
<form id="ricerca" method="post" action="pagina_che_vuoi.php">
    <span>Folder :</span>
    <select name="IDFolder">
        <option value=""></option>
    </select><br/>
    <span>Capsule :</span>
    <select name="IDCapsule">
        <option value=""></option>
    </select><br/>
    <span>Report :</span>
    <select name="IDReport">
        <option value=""></option>
    </select>
    <textarea name="test" rows="5" cols="32"></textarea>
    <input type="submit" name="invio" value="Invia"/>
</form>
 
Sono riuscito a fare tutto, adesso tutti i dati vanno correttamente inseriti nel db e funziona tutto.
Grazie mille :)

Avrei però un'altra piccola domanda.
Io ho nelle mie tabelle la descrizione di tutti i dati, se volessi visualizzare nel menù a tendina anche quella come posso fare?
 

Discussioni simili