Обновление значения одного раскрывающегося списка на основе значения другого раскрывающегося списка

У меня есть два раскрывающихся списка, оба взяты из каталогов. Первый раскрывающийся список выбирает путь, т. е. очищает первую папку. Второй раскрывающийся список определяет изображение для отображения из этой папки. Однако я не могу получить значение второго раскрывающегося списка для обновления при изменении первого раскрывающегося списка. Это означает, что раскрывающийся список пуст.

Код:

<select name="Image1">
    <option value="" selected="selected"></option>
  <?php 
    $dir1 = "../img/";
    $dh1  = opendir($dir1);
    while (false !== ($filename1 = readdir($dh1))) {
        if ($filename1 === '.' or $filename1 === '..' or $filename1 === '.htaccess' or $filename1 === 'theme' )
            continue;
     else
            $files1[] = $filename1;
  echo "<option value='".$dir1 ."/". $filename1 . "'>" . $filename1 . "</option>";  }
    sort($files1);
 ?>

</select>
<select name="Image2" onChange="showImage(this.value)">
    <option value="" selected="selected"></option>
  <?php 
    $dirname = $_POST['Image1'];
    $dir = "../img/" . $dirname . "/";
    $dh  = opendir($dir);
    while (false !== ($filename = readdir($dh))) {
        if (strpos($filename, '.JPG')!== false) 
            $files[] = $filename;
     else
            continue;
  echo "<option value='".$dir ."/". $filename . "'>" . $filename . "</option>";  }
    sort($files);
 ?>

</select>  

<div id="image_div"></div> 

<script type="text/javascript">
 function showImage(value)
 {
  var img = "<img src='"+value+"' style=width:55em; height:55em; />";
  document.getElementById('image_div').innerHTML = img;
 }
</script>

Редактировать: я прочитал много других вопросов и не смог их реализовать из-за наличия либо SQL, либо предопределенных значений, поэтому простая фильтрация выбора по идентификатору не сработает.


php
person finn3y    schedule 12.01.2018    source источник
comment
Возможный дубликат Изменить массив параметров списка выбора   -  person miken32    schedule 12.01.2018
comment
Это довольно просто с помощью jquery. И это тоже спрашивали несколько раз здесь.   -  person IncredibleHat    schedule 12.01.2018
comment
Вы хотите, чтобы он был интерактивным на стороне клиента? Затем вам нужно будет отправить запрос AJAX на сервер с выбранной опцией и обратно со списком опций, которые будут добавлены ко второму выбору.   -  person ino    schedule 12.01.2018
comment
Да, клиент выберет изображение для показа. @я не   -  person finn3y    schedule 12.01.2018
comment
Не очень помогает, я посмотрел и не нашел ничего, что могло бы помочь. @IncredibleHat   -  person finn3y    schedule 12.01.2018
comment
stackoverflow .com/questions/17384705/   -  person ino    schedule 12.01.2018
comment
stackoverflow.com/questions/47102531 /   -  person IncredibleHat    schedule 12.01.2018
comment
stackoverflow.com/questions/10570904/   -  person ino    schedule 12.01.2018
comment
Возможно, это даст вам некоторое представление: mitrajit.com/   -  person npcoder    schedule 12.01.2018
comment
См. обновленный раздел «редактировать» исходного сообщения. @IncredibleHat   -  person finn3y    schedule 12.01.2018
comment
См. обновленный раздел «редактировать» исходного сообщения. @я не   -  person finn3y    schedule 12.01.2018
comment
См. обновленный раздел «редактировать» исходного сообщения. @Хумбал   -  person finn3y    schedule 12.01.2018
comment
Вы все еще можете использовать уникальный идентификатор, просто md5 имя файла в безопасную для идентификатора строку, чтобы использовать ее для ссылок и манипуляций.   -  person IncredibleHat    schedule 12.01.2018
comment
Не могли бы вы связать меня где-нибудь о том, как это сделать? Я провел некоторые исследования и ничего не нашел. @IncredibleHat   -  person finn3y    schedule 12.01.2018
comment
Ну, ваш главный недостаток в коде в вашем вопросе заключается в том, как настроить второй элемент select. Либо вам нужно получить результаты ajax на основе первого, чтобы заменить второй, либо вам нужно добавить каждый выбор во второй (но скрытый), чтобы вы могли фильтровать/показывать/скрывать на основе первого. Ключ по идентификатору — наименьшая из проблем на этом этапе, так как как только вы исправите настройку ядра, многие другие проблемы будут аннулированы. К сожалению, у меня нет времени переписывать ваш код для примера... босс тоже преследует меня;)   -  person IncredibleHat    schedule 12.01.2018
comment
глядя на внедрение лучшей системы сегодня. Спасибо за помощь! @IncredibleHat   -  person finn3y    schedule 13.01.2018