使用内联javascript更新下拉列表

时间:2014-08-21 09:45:26

标签: javascript php

我有一个下拉列表,如下所示:

   <select name="myDDownList" class="none" id="myDDownListID" style="height:25px; width:   280px">

   <?php
   if(file_exists($filesDir))
   {
     foreach (new DirectoryIterator($filesDir) as $file)
     {
       if((htmlentities($file) !== ".") && (htmlentities($file) !== ".."))
       {
         echo "<option>" .htmlentities($file). "</option>";
       }
     }
   ?>
   </select>

文件夹 $ filesDir 的内容可以由操作系统自动更新,我也想自动更新下拉列表的内容,而无需手动重新加载整个页面内容。

我虽然可以使用 setInterval 函数使用内联Javascript代码,但是这样更改代码:

  <select name="myDDownList" class="none" id="myDDownListID" style="height:25px; width: 280px">

  <?php
  if(file_exists($filesDir))
  {
    foreach (new DirectoryIterator($filesDir) as $file)
    {
      if((htmlentities($file) !== ".") && (htmlentities($file) !== ".."))
      {
        echo "<option>" .htmlentities($file). "</option>";
      }
    }
  }
  ?>

  <script>
     /* use 'setInterval' function here */
  </script>
  </select>

但老实说,我不知道如何更新 setInterval 功能中的下拉列表的内容。我想我必须使用Javascript库中的一个函数。 但我不知道哪个功能。

拜托,您能帮我找一个解决方案吗? 提前感谢您的帮助。

西蒙

1 个答案:

答案 0 :(得分:1)

你制作一个php页面&#34; getListDirectory.php&#34;

 <?php
  if(file_exists($filesDir))
  {
    foreach (new DirectoryIterator($filesDir) as $file)
    {
      if((htmlentities($file) !== ".") && (htmlentities($file) !== ".."))
      {
        echo "<option>" .htmlentities($file). "</option>";
      }
    }
  }
  ?>

并且您的脚本只需每15秒发出一次请求即可:

setInterval(function(){

$.get( "getListDirecotry.php", function( data ) {
  $("#myDDownListID").html(data);
});

}, 15000);