Как обновить несколько выбранных материалов без обновления страницы? - PullRequest
0 голосов
/ 02 августа 2020

Я не знаю, как с этим справиться, поэтому мне нужна помощь.
У меня есть 3 поля выбора, и каждое поле выбора имеет свое содержимое из текстового файла.

  1. список select1 из файла customer.txt
  2. список select2 из select1 selection + "_location. txt "
  3. список select3 из select1 selection + select2 selection +" _device.txt "

select 2 will update when select1 change, and select3 update when select2 change

Помогите, пожалуйста, как заставить его работать?

Это мой код:

        <table width=100% border="0" cellpadding="1" >
    <tr>
    <td>
    <label class="description" for="element_21">Customer </label>
    <div>
    <select name="select1" id="select1" >
        <option selected value="base">Choose Customer</option>
       <?php foreach($customerlines as $custlines){ 
            echo "<option value='".$custlines."'>$custlines</option>";
            $lokasi = "config/".$custlines."_lokasi.txt";   //txt file for select2 list
            $lokasilines = file($lokasi, FILE_IGNORE_NEW_LINES);
            }?>
    </select>
    </div>
    </td>
    <td>
    <label class="description" for="element_21">Location</label>
    <div>
    <select name="select2" id="select2">
        <option selected value="base">Choose Location</option>
       <?php
       foreach($lokasilines as $loclines){ 
            echo "<option value='".$loclines."'>$loclines</option>";
            $device = "config/"."_".$loclines."_device.txt";    //txt file for select3 list
            $devicelines = file($device, FILE_IGNORE_NEW_LINES);

            }?>
    </select>
    </div>
    </td>
    <td>
    <label class="description" for="element_21">Device</label>
    <div>
    <select name="select3" id="select3">
        <option selected value="base">Choose Device</option>
       <?php 
        foreach($devicelines as $devlines){ 
        echo "<option value='".$devlines."'>$devlines</option>";        
        }?>
    </select>
    </div>
    </td>
    </tr>
    </table>

и это текстовый файл для select1

<?php
    error_reporting(E_ALL);
    ini_set('display_errors',1);
    $customer = 'config/customer.txt';
    $customerlines = file($customer, FILE_IGNORE_NEW_LINES);
?>

1 Ответ

0 голосов
/ 04 августа 2020

я добавляю onchange в select1

    <br>
    
    <table width=100% border="0" cellpadding="1" >
    <tr>
    <td>
    <div class='form-group'>
    <label class="description" for="element_21">Customer </label>
    <select class='form-control' name="select1" id="select1" onchange="selectloc(event)" >
        <option selected value="base">Pilih Customer</option>
       <?php foreach($customerlines as $custlines){ 
            echo "<option value='".$custlines."'>$custlines</option>";
            }?>
    </select>
    </div>
    </td>
    <td>
    <div class='form-group'>
    <label class="description" for="element_21">Lokasi</label>
    <select class='form-control' name="select2" id="select2" >
        <option selected value="base">Pilih Lokasi</option>
       <?php
       foreach($lokasilines as $loclines){ 
        echo "<option value='".$loclines."'>$loclines</option>";
        }?>
    </select>
    </div>
    </td>
    <td>
    <div class='form-group'>
    <label class="description" for="element_21">Perangkat</label>
    <select class='form-control' name="select3" id="select3" >
        <option selected value="base">Pilih Perangkat</option>
       <?php
        foreach($devicelines as $devlines){ 
        echo "<option value='".$devlines."'>$devlines</option>";        
        }?>
    </select>
    </div>
    </td>
    </tr>
    </table>

и могу получить значение select1. Но как использовать это значение для преобразования в текстовый файл для select2?

<script>
function selectloc(event) {

    var selectElement = event.target;
    var locvalue = selectElement.value;
     //"You selected: " + locvalue;
    //document.getElementById("select1").innerHTML = "You selected: " + locvalue;
    alert(locvalue);
    $lokasi = "config/".locvalue."_lokasi.txt";
    $lokasilines = file($lokasi, FILE_IGNORE_NEW_LINES);
    
}</script>
...