如何从Dropdown填写表单数据?

时间:2015-03-09 04:03:00

标签: javascript php

我在页面上有一个用户可以保存信息的表单,以及一个从他们保存的目录中提取这些已保存文件的下拉列表。我想要的是当他们去那个页面时,是当他们从下拉框中选择文件名时,它将文件的名称放在输入框“CodeDescription”字段中,并将文件信息放在textarea“Code”中“,但我不确定如何解析它。以下是我目前的代码。

<input type="hidden" name="Action" value="EDIT" />
<input type="hidden" name="Selection"  id="Selection" value="-1">    
<div>Below is the list of your saved codes. To edit your codes, select it from the list.</div>
<select> 
<?php 
  $directory = $directory = 'users/' . $_SESSION['username'];
  $files = scandir( $directory ) ;
  foreach( $files as $file ) {
    if ( ! is_dir( $file ) ) {
      echo "<option>" . $file . "</option>";
    }
  }
  ?>
</select>
<h3>Saved Codes</h3>
<form method="post" action="/evo/avsaveprocess.php">
  <input type="hidden" name="Action" value="SAVE" />
  <input type="hidden" name="CodeId" id="CodeId" value="0" />
  <table width="100%" border="0">
    <tr>
      <td>Description:</td>
      <td><input type="text" name="CodeDescription" size="40" maxlength="50" id="CodeName" value="" /></td>
    </tr>
    <tr>
      <td valign="top">Code:</td>
      <td>
        <textarea rows="10" style="width:99%" name="Code" id="CodeValue"></textarea>
      </td>
    </tr>
  </table>
  <input type="submit" value="Save" />
</form>

或者,相反,我不介意如果在下拉菜单中选择正确的文件,它只是在表单字段下方显示输出。

编辑添加我正在尝试的javascript:

<script>

function CodeChange() {                            
        var filesContentJS = "$filesContents";
        if (index > 0) {
            document.getElementById("Selection").value = filesContentJS;
          } else {
            document.getElementById("Selection").value = "-1";
            document.getElementById("CodeId").value = "0";
            document.getElementById("CodeName").value = "";
            document.getElementById("CodeValue").value = "";
        }
    }

</script>

更新了javascript 这不会输出任何错误,但是当我在Chrome中检查元素时,它会返回:

警告:file_get_contents(users / AddictionAddiction.txt)[function.file-get-contents]:无法打开流:第141行/home/revo/public_html/evo/codesaveindex.php中没有此类文件或目录< / p>

我不知道在哪里纠正,因为AddictionAddiction.txt之间应该有一个/

1 个答案:

答案 0 :(得分:1)

创建文件内容数组:

<?php 
$directory = $directory = 'users/' . $_SESSION['username'];
$filesContents = Array();
$files = scandir( $directory ) ;

foreach( $files as $file )
{
if ( ! is_dir( $file ) )
{
$filesContents[$file] = file_get_contents($directory . $file);
echo "<option>" . $file . "</option>";
}
}
?>

然后使其成为Javascript数组或JSON

<script>
var filesContentJS = <?=json_encode($filesContents) ?>;
</script>

在选择中使用onChange =“”函数:从下拉列表中获取所选文件,滚动filesContentJS以查找其内容并用其填写表单


另一个注意事项:请记住,如果你的文件很大(有很多代码/文本) - 你可能需要用AJAX来做这个... 当下拉列表更改时,请执行AJAX调用以检索其信息。