le opzioni a discesa dipendono da altre opzioni a discesa (tutto il valore dal database)

come posso fare questo. se seleziono nel primo dropdown hand spa, il massaggio manuale dovrebbe apparire solo nel secondo menu a discesa.

voglio che i valori nel mio secondo menu a discesa dipenderanno dal primo qui è il mio codice corrente:

 
Category: <?php $qry=mysql_query("SELECT * FROM categ",$con); while($rs = mysql_fetch_object($qry)){ echo "categid."'>" .$rs->categname.""; } ?>
sub categ: <?php $qry=mysql_query("SELECT * FROM serv",$con); while($rs = mysql_fetch_object($qry)){ echo "servid."'>" .$rs->servname.""; } ?>

ecco il mio database

 CREATE TABLE IF NOT EXISTS `categ` ( `categid` int(11) NOT NULL AUTO_INCREMENT, `categname` varchar(255) NOT NULL, PRIMARY KEY (`categid`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=3 ; -- -- Dumping data for table `categ` -- INSERT INTO `categ` (`categid`, `categname`) VALUES (1, 'hand spa'), (2, 'foot spa'); CREATE TABLE IF NOT EXISTS `serv` ( `servid` int(11) NOT NULL AUTO_INCREMENT, `servname` varchar(255) NOT NULL, `categid` int(11) NOT NULL, PRIMARY KEY (`servid`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=3 ; -- -- Dumping data for table `serv` -- INSERT INTO `serv` (`servid`, `servname`, `categid`) VALUES (1, 'haaaanndddd massage', 1), (2, 'footssppaa', 2); 

Ecco un esempio che puoi personalizzare per fare ciò che vuoi. In sostanza, è ansible utilizzare jQuery / AJAX per realizzare questo.

L’esempio seguente crea una seconda casella a discesa, popolata con i valori trovati. Se segui la logica riga per riga, vedrai che in realtà è piuttosto semplice. Ho lasciato diverse righe commentate che, se non commentate (una alla volta) ti mostreranno cosa sta facendo la sceneggiatura in ogni fase.

FILE 1 – TESTER.PHP

        

FILE 2 – another_php_file.php

 Found in Database: '; //The response echoed below will be inserted into the echo $r; 

Per rispondere alla solita domanda: “Come si fa a compilare il secondo menu a discesa campi che sono rilevanti solo per un’opzione selezionata dalla prima casella a discesa?”

A. All’interno dell’evento .change per il primo menu a discesa, si legge il valore della prima casella a discesa:

$('#dropdown_id').change(function() {
var dd1 = $('#dropdown_id').val();
}

B. Nel tuo codice AJAX per l’evento .change() sopra, includi quella variabile nei dati che stai inviando al 2o file .PHP (nel nostro caso, “another_php_file.php”)

C. Usi quella variabile passata nella tua query mysql, limitando così i tuoi risultati. Questi risultati vengono quindi passati alla funzione AJAX e puoi accedervi in ​​caso di success: parte della funzione AJAX

D. In quella funzione di successo, si inserisce il codice nel DOM con i valori SELEZIONATI modificati.


Ecco come funziona l’esempio precedente:

  1. L’utente sceglie un nome studente, che .change() selettore jQuery .change()

  2. Ecco la riga in cui si trova l’opzione selezionata dall’utente:

    var sel_stud = $(this).val();

  3. Questo valore viene inviato a another_php_file.php , tramite questa riga del codice AJAX:

    data: 'theOption=' + sel_stud,

  4. Il file di ricezione another_php_file.php riceve la selezione dell’utente qui:

    $selStudent = $_POST['theOption'];

  5. Var $ selStudent (la selezione dell’utente pubblicata in via AJAX) viene utilizzata nella ricerca mysql:

    $ query = “SELECT * FROM` category` WHERE `master` = 0 AND` name` = ‘$ selStudent’ “;

    (Quando si cambia l’esempio per adattarlo al proprio database, il riferimento a $ selStudent è stato rimosso, ma questo (qui sopra) è come lo si userebbe).

  6. Ora creiamo un nuovo blocco di codice , che memorizza l’HTML in una variabile chiamata $r . Quando l’HTML è completamente compilato, restituisco il codice personalizzato alla routine AJAX semplicemente richiamandolo di nuovo:

    echo $r;

  7. I dati ricevuti (il blocco di codice personalizzato) sono disponibili all’interno del success: function() {//code block} AJAX success: function() {//code block} e posso inserirlo nel DOM qui:

    $('#LaDIV').html(whatigot);

E voilà, ora vedi un secondo controllo a discesa personalizzato con valori specifici per la scelta dal primo controllo a discesa.

Funziona come un browser non Microsoft.

Se ho ottenuto la tua domanda in modo chiaro, puoi studiare questo codice e personalizzarlo in base alle tue esigenze. è semplice e diretto

Diciamo che il nostro scopo è gestire i film