Intereting Posts
Кэширование с разбивкой по страницам, очистка от обновления – как решить? 'FOS \ UserBundle \ FOSUserBundle' не найден Связывание MySQL с локальным портом через SSH – работает в консоли, а не через PHP shell_exec () в Mac OSX функция создания часового пояса в веб-приложении PHP Блокировка PHP / Apache по каждому запросу? Регулярное выражение для комментариев и многострочных комментариев и пустых строк Laravel – Valet 2. * возвращает только «он работает!» Может ли PHP включать работу только для определенной части файла? PHP. Как открыть файлы и прочитать их, а затем написать новые с помощью «x» строк в файле? Как загрузить файл с PHP, curl и HTTP POST путем потоковой передачи файла? глобальные переменные равны нулю при использовании PHPUnit Получение значения переменной из PHP с помощью jQuery Как получить доступ к определенным полям из содержимого JSON с помощью php? Как подавить предупреждение phpseclib «Недействительный HMAC» CURL – cookie не включен / сеанс истек

Установите опцию, доступную для выбора, на основе другого выбора php

Континентальный стол

  1. ASIA
  2. ЮЖНАЯ АМЕРИКА

Стол страны

  1. Япония
  2. Китай
  3. Бразилия
  4. Перу

Это данные в моей таблице, и я получаю все данные из таблицы континентов и таблицы стран, как это

<select name="continent" class='required InputBox'> <?php echo "<option value=''></option>"; foreach (Contintent() as $value) { echo "<option id='" . $value[ 'sysid'] . "' value='" . $value[ 'name'] . "'>" . $value[ 'name'] . "</option>"; } ?> </select> 

Это для страны

 <select name="country" class='required InputBox'> <?php echo "<option value=''></option>"; foreach (Country() as $value) { echo "<option id='" . $value[ 'sysid'] . "' value='" . $value[ 'name'] . "'>" . $value[ 'name'] . "</option>"; } ?> </select> 

Я хочу знать, как сделать это таким образом, что, когда я выбираю континент, например, азия, вариант, доступный для графства, будет страной только в Азии, которая является Японией и Китаем. У меня также есть другая таблица после этого, которая является городом, но если я получу логику, я могу применить ее к городу. Любая идея оценена

"ОБНОВИТЬ"

Нашел что-то здесь

Тот, с которым я не знаком, является ajax, может кто-нибудь попытаться объяснить, как он работает. Я хочу знать, как я могу передать идентификатор выбора из этого фрагмента javascript на мою страницу функций php, вот фрагмент.

 $('.continent').change(function() { var id = $(this).find(':selected')[0].id; //alert(id); $.ajax({ type:'POST', url:'../include/functions.php', data:{'id':id}, success:function(data){ // the next thing you want to do console.log(data); alert(id); } }); }); 

в моей функции php

 function Country(){ if(isset($_POST['id'])){ echo $_POST['id']; } } 

Проблема в том, что значение id не передается, как передать его на function.php. Это произошло success:function(data){ что я буду делать дальше?

FYI

Предупреждение о том, что он получает идентификатор континента, он просто не передается в функции. Php и console.log ничего не записывает, и когда я меняю URL на главную страницу на странице, где select находятся в console.log, возвращается код главной страницы.

Related of "Установите опцию, доступную для выбора, на основе другого выбора php"

Как было сказано, вы можете использовать ajax. Существует статический не-ajax способ сделать это, но таким образом, это лучше в долгосрочной перспективе.

В основном, то, что вы делаете с этим jQuery, – это прослушивание изменений в поле выбора континентов, и когда происходит изменение, вы обращаетесь к серверу с просьбой: «Дайте мне все страны на этом континенте». У вас должна быть база данных для этого или вы можете сопоставить их в статических объектах, чтобы проверить ее.

 $('.continent').change(function() { var id = $(this).val(); //get the current value's option $.ajax({ type:'POST', url:'<path>/getCountries', data:{'id':id}, success:function(data){ //in here, for simplicity, you can substitue the HTML for a brand new select box for countries //1. $(".countries_container").html(data); //2. // iterate through objects and build HTML here } }); }); 

Это, конечно же, заставило бы вас добавить countries_container в HTML, как и внутри него, вы бы сделали select :

 <div class="countries_container"></div> 

Теперь на стороне сервера PHP (getCountries) вы можете сделать что-то вроде:

 $id = $_POST['id']; if(isset($id) && <other validations>)){ // 1. your query to get countries from a given continent // and for each result you can build the HTML itself // 2. OR, a better solution is to return an Object and then in the // success:function(data){ } iterate through it } 

Этот код может наиболее вызывающе улучшить, но я попытался объяснить его понятным образом.

Кроме того, вы должны проверить:

Jquery ajax заполняет выпадающий список с данными ответа json

Демо связанного выпадающего списка с помощью Ajax & PHP

Имейте в виду, что это были первые результаты поиска Google, поэтому в следующий раз попробуйте выполнить поиск в самом стеке, чтобы избежать дублирования вопросов.