我在页面上有一个用户可以保存信息的表单,以及一个从他们保存的目录中提取这些已保存文件的下拉列表。我想要的是当他们去那个页面时,是当他们从下拉框中选择文件名时,它将文件的名称放在输入框“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之间应该有一个/
答案 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调用以检索其信息。