我有一个从服务器中选择文件的表单,然后在更改时将文件名和内容放入文本区域。如果我在/ evo /的基本目录中保存所有内容(例如/ evo / users / username是从中提取文件的位置),这样可以正常工作。但是当我将此页面更深入到文件夹时,它解析时遇到问题下拉列表中的文件。我不得不添加
$_SERVER['DOCUMENT_ROOT']
在文件中找到要正确显示在下拉列表中的文件,但是当它尝试将它们放入文本区域时,它会显示:
Failed to load resource: the server responded with a status of 404 (Not Found)
XHR finished loading: GET "http://mywebsite.site/home/revo/public_html/evo/users/Addiction/Addiction.html".
这意味着我的目录在我如何找到它们是错误的,或者(希望和可能)我如何回应它或在底部的功能变化中使用它是。未正确加载的textarea是显示文件内容的“CodeValue”框。
<select size="1" name="CodeList" id="CodeList"><option selected disabled>(Select Your Code)</option>
<?php
$directory = $directory = $_SERVER['DOCUMENT_ROOT'] . '/evo/' . '/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 value="'. $file .'">' . $file . '</option>';
}
}
?>
</select>
<input type="hidden" name="CodeId" id="CodeId" value="0" />
<input type="hidden" name="CodeDescription" size="40" maxlength="50" id="CodeName" value="" />
<font color=#33A6A6>Code:</font> <input name="USER" value="" SIZE=40 name="CodeValue" id="CodeValue" /> <input type=hidden name="ACTION" value="says to"><input type=hidden name="WHOTO" value="ALL"><input type=submit value="Enter"><font size="-1"><font color=#33A6A6>Entrance: </font><input name="SAYS" value="Enters the room..."><font color=#33A6A6>History: </font><input name="HISTORY" value="20" size=2><font size="-1"><font color=#33A6A6>No Pics: </font><input name="NOPIC" value="1" type="checkbox" checked></form>
<script>
$(document).ready(function(){
// apply a change event
$('#CodeList').change(function() {
// update input box with the currently selected value
$('#CodeName').val($(this).val());
$.get( '<? echo $directory ?>' + '/' + $('#CodeName').val(), function( data ) {
$( "#CodeValue" ).val( data );
});
});
});
</script>
答案 0 :(得分:1)
错误消息显示AJAX请求转到此URL:
http://mywebsite.site/home/revo/public_html/evo/users/Addiction/Addiction.html
虽然我认为你想要它去:
http://mywebsite.site/evo/users/Addiction/Addiction.html
因为你说/evo/
是基目录。要输出的脚本包括服务器上的内部目录路径,而不是外部可见的HTTP路径。您可以通过在顶部执行此操作来更改此操作:
$httpPath = '/evo/' . '/users/' . $_SESSION['username'];
$directory = $directory = $_SERVER['DOCUMENT_ROOT'] . $httpPath;
然后在脚本输出中显示:
$.get( '<? echo $httpPath ?>' + '/' + $('#CodeName').val(), function( data ) {