php + popola menu a discesa sulla selezione di un altro

sto creando tre menu a discesa e funziona molto bene, ma voglio che la seconda list di selezione appaia sulla selezione del primo e la terza sulla selezione del secondo come farlo se qualcuno mi può guidare o dare me un esempio lo apprezzerò

PS: la seconda list o tabella di rilascio ha una chiave esterna dalla prima, quindi qui voglio lavorare per popolare la seconda in base alla selezione della prima.

fun.inc.php

<?php require_once('db.inc.php'); function connect(){ mysql_connect(DB_Host, DB_User ,DB_Pass )or die("could not connect to the database" .mysql_error()); mysql_select_db(DB_Name)or die("could not select database"); } function close(){ mysql_close(); } function countryQuery(){ $countryData = mysql_query("SELECT * FROM country"); while($record = mysql_fetch_arrays($countryData)){ echo'<option value="' . $record['country_name'] . '">' . $record['country_name'] . '</option>'; } } function specializationQuery(){ $specData = mysql_query("SELECT * FROM specialization"); while($recordJob = mysql_fetch_arrays($specData)){ echo'<option value="' . $recordJob['specialization_name'] . '">' . $recordJob['specialization_name'] . '</option>'; } } function governorateQuery(){ $goverData = mysql_query("SELECT * FROM governorate"); while($recordGover = mysql_fetch_arrays($goverData)){ echo'<option value="' . $recordGover['governorate_name'] . '">' . $recordGover['governorate_name'] . '</option>'; } } ?> 

index.php

 <?php require_once('func.inc.php'); connect(); ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>testDroplistdown</title> </head> <body> <p align="center"> <select name="dropdown"> <?php countryQuery(); ?> </select> </p> <br /> <br /> <p align="center"> <select name="dropdown2"> <?php governorateQuery(); ?> </select> </p> <p align="left"> <select name="dropdown3"> <?php specializationQuery(); ?> </select> <?php close(); ?> </p> </body> </html> 

assicurati di non lasciare mai dopo il tag di chiusura del php e l'accusa del tuo header html, può lanciare alcuni brutti errori

questo script dovrebbe funzionare

  <?php require_once('func.inc.php'); connect(); ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>testDroplistdown</title> <script src="http://code.jquery.com/jquery-latest.js"></script> </head> <body> <p align="center"> <div id="dropdown1div"><select id="dropdown1" name="dropdown"> <?php countryQuery(); ?> </select></div> </p> <br /> <br /> <p align="center"> <div id="dropdown2div"></div> </p> <p align="left"> <div id="dropdown3div"></div> <script type="text/javascript"> $("#dropdown").change(function() { val = $(this).val(); var html = $.ajax({ url: "dropdown_select.php?dropdown=2&val="+val+"", async: true, success: function(data) { $('#dropdown2div').html(data); }////////////function html//////// })/////////function ajax////////// }); </script> <?php close(); ?> </p> </body> </html> 

dropdown_select.php

  <?php require_once('func.inc.php'); connect(); if(isset($_GET['val'])){ $val = $_GET['val']; $dropdown = $_GET['dropdown']; } if($dropdown == '2'){ echo '<select id="dropdown2" name="dropdown2">'; governorateQuery(); echo '</select>'; ?> <script type="text/javascript"> $("#dropdown2").change(function() { val = $(this).val(); var html = $.ajax({ url: "dropdown_select.php?dropdown=3&val="+val+"", async: true, success: function(data) { $('#dropdown3div').html(data); }////////////function html//////// })/////////function ajax////////// }); </script> } // end if statement if($dropdown == '3'){ echo '<select id="dropdown3" name="dropdown3">'; specializationQuery(); echo '</select>'; } // end if statement close(); ?> 

Non puoi farlo solo con PHP, devi usare AJAX.

Ajax è una tecnica che utilizza javascript e PHP per caricare nuovi risultati in base all'input dell'utente. Diciamo che selezioni un paese e ottieni una nuova casella di selezione con tutte le città di quel paese.

Dovrai creare un gestore di events per la prima casella di selezione:

  <select name="dropdown" onchange="loadNewSelectBox(this.value)"> // values </select> 

LoadNewSelectBox sarebbe una function che pubblicherebbe una nuova richiesta xmlhttp su un file php sul server con il valore della casella di selezione. Quindi dovresti echo i dati da quel file PHP (json, xml, html ..) con risposta. La tua risposta (per principianti) sarebbe probabilmente html contenente la nuova casella di selezione. Quindi si dovrebbe aggiungere la risposta a un div o paragrafo.

Questo è un esempio simile al tuo task: http://www.w3schools.com/php/php_ajax_database.asp

E questa è una buona fonte di apprendimento. https://developer.mozilla.org/en-US/docs/AJAX/Getting_Started