重新加载下拉框内容


Reload Dropdown Box content?

我找遍了所有的地方,但是都没用,所以我不得不问社区里有没有什么可以帮我的。

那么,我有一个下拉菜单和一个开关(复选框),如果我按下开关,它应该加载下拉内容,比如"Radio",如果我把它切换回来,它应该把下拉内容切换回,比如"playlist"。

代码如下:

<?PHP
// Read playlist & Radio
    $playlists =    explode("'n", shell_exec("/usr/bin/mpc lsplaylists"));
    array_pop($playlists); //remove empty last line
    $radioStations  = array();
    $radioStations =    explode("'n", shell_exec("/usr/bin/mpc ls Webradio"));
    $radioStations = str_replace("Webradio/","",$radioStations);
    $radioStations = str_replace(".pls","",$radioStations);
    array_pop($radioStations); //remove empty last line
?>

脚本:

<script>
        function checkSelectedScheduleType()
        {
            if (document.getElementById('radioSelected').checked) 
            {
                alert("radio selected fill dropdown with radio stations...");
                <?php 
                $playlist = $radioStations;
                ?>
            } 
            else 
            {
                <?php 
                $playlist = $playlists;
                ?>
                alert("Playlist selected fill dropdown with playlists...");
            }
        }

</script>
开关:

<td class="alarmvalue" style="padding:2px 15px;">
        <select name="add[alarmplaylist]" id="playlist_wrongstyle" class="form-control"  style="visibility:visible; background: transparent; width:250px;">
            <?php foreach ($playlist as $playlistss){echo "<option value='"$playlistss'">$playlistss</option>'n";} ?>
        </select>
</td>

我发现的问题:

即使PHP在JS的"IF"语句中,PHP仍然在运行,没有调用JS函数,这很奇怪,所以select是分配最后一个PHP变量。

我的解决办法:

可能不是最好的,但有效!我创建了另一个下拉菜单,填充了我想要的选项,然后使显示="无",然后当我点击它会触发我的功能与"onchange",并使其显示="块"和隐藏彼此,是完美的工作!

下面的代码:

JS:

<script>
        function checkSelectedScheduleType()
        {
            if (document.getElementById('radioSelected').checked) 
            {
                document.getElementById("slplaylist").style.display="none";
                document.getElementById("slradio").style.display="block";
            } 
            else 
            {
                document.getElementById("slplaylist").style.display="block";
                document.getElementById("slradio").style.display="none";
            }
        }
</script>
HTML:

<td class="alarmvalue" style="padding:2px 15px;">
        <label class="switch-lightp2 well_" onchange="checkSelectedScheduleType()">
            <input id="radioSelected" name="" type="checkbox" value="">
            <span><span>Playlist</span><span>Radio</span></span><a class="btn btn-primary"></a>
        </label>
    </td>
    <td class="alarmcat">
    </tr>
    <td class="alarmvalue" id="slplaylist" style="padding:2px 15px; display:block;">
        <select name="add[alarmplaylist]" id="playlist_wrongstyle" class="form-control"  style="visibility:visible; background: transparent; width:250px;">
            <?php foreach ($playlists as $playlist){echo "<option value='"$playlist'">$playlist</option>'n";} ?>
        </select>
    </td>
    <td class="alarmvalue" id="slradio" style="padding:2px 15px; display:none;">
        <select name="add[alarmplaylist]" id="playlist_wrongstyle" class="form-control"  style="visibility:visible; background: transparent; width:250px;">
            <?php foreach ($radioStations as $playlist){echo "<option value='"$playlist'">$playlist</option>'n";} ?>
        </select>
    </td>