PHP获取textarea的文件内容

时间:2015-03-18 00:36:04

标签: javascript php html

我有一个从服务器中选择文件的表单,然后在更改时将文件名和内容放入文本区域。如果我在/ 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>&nbsp;<input name="USER" value="" SIZE=40 name="CodeValue" id="CodeValue" />&nbsp;&nbsp;&nbsp;<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:&nbsp;</font><input name="SAYS" value="Enters the room..."><font color=#33A6A6>History:&nbsp;</font><input name="HISTORY" value="20" size=2><font size="-1"><font color=#33A6A6>No Pics:&nbsp;</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>

1 个答案:

答案 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 ) {