Intereting Posts

php + заполнить выпадающее меню при выборе другого

я создаю три выпадающего меню, и он работает очень хорошо, но я хочу, чтобы второй список выпадающих отобразился на выбор первого, а третий – на выбор второго, как это сделать, если кто-нибудь может направить меня или дать я пример, я буду признателен за то, что

PS: у второго списка или таблицы есть внешний ключ из первого, поэтому я хочу работать, чтобы заполнить второй, основываясь на выборе первого.

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_array($countryData)){ echo'<option value="' . $record['country_name'] . '">' . $record['country_name'] . '</option>'; } } function specializationQuery(){ $specData = mysql_query("SELECT * FROM specialization"); while($recordJob = mysql_fetch_array($specData)){ echo'<option value="' . $recordJob['specialization_name'] . '">' . $recordJob['specialization_name'] . '</option>'; } } function governorateQuery(){ $goverData = mysql_query("SELECT * FROM governorate"); while($recordGover = mysql_fetch_array($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> 

убедитесь, что вы никогда не оставляете после вашего закрывающего тега php и попрошайничать свой html-заголовок, он может вытащить некоторые неприятные ошибки

этот скрипт должен работать

  <?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(); ?> 

Вы не можете делать это только с PHP, вам нужно использовать AJAX.

Ajax – это метод, использующий javascript и PHP для загрузки новых результатов в соответствии с пользовательским вводом. Предположим, вы выбрали страну, и вы получите новый флажок со всеми городами из этой страны.

Вам нужно будет создать обработчик событий в первом поле выбора:

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

LoadNewSelectBox будет функцией, которая отправит новый xmlhttp-запрос в php-файл на вашем сервере со значением вашего поля выбора. Затем вы получите эхо-данные из этого файла PHP (json, xml, html ..) с ответом. Ваш ответ (для начинающего), вероятно, будет html, содержащий новый флажок select. Затем вы добавите этот ответ в div или абзац.

Это пример, похожий на вашу задачу: http://www.w3schools.com/php/php_ajax_database.asp

И это хороший источник обучения. https://developer.mozilla.org/en-US/docs/AJAX/Getting_Started