Javascript 在文本字段中显示下拉列表的结果

Javascript 在文本字段中显示下拉列表的结果,javascript,php,jquery,Javascript,Php,Jquery,我希望在这里问另一个问题,因为主要问题在这条线上得到了回答: 虽然它有点延续 我正在尝试使用javascript和onChange()函数滚动文件,然后在表单的文本输入和文本区域字段中显示它们。不过,如果您能帮助我解析javascript,我将不胜感激。现在,我可以将文件拉入下拉菜单,但当我从下拉菜单中选择一个文件时,表单上不会发生任何事情或填充任何内容 编辑以更新所有错误似乎都已解决,但从下拉菜单中选择文件时,文本框中不会移动任何内容 Javascript: <script>

我希望在这里问另一个问题,因为主要问题在这条线上得到了回答:

虽然它有点延续

我正在尝试使用javascript和onChange()函数滚动文件,然后在表单的文本输入和文本区域字段中显示它们。不过,如果您能帮助我解析javascript,我将不胜感激。现在,我可以将文件拉入下拉菜单,但当我从下拉菜单中选择一个文件时,表单上不会发生任何事情或填充任何内容

编辑以更新所有错误似乎都已解决,但从下拉菜单中选择文件时,文本框中不会移动任何内容

Javascript:

 <script>

function CodeChange() {
        var filesContentJS = "$filesContents"                            
        var index = filesContentJS.selectedIndex;
        var e = document.getElementById("CodeList");
        var strUser = e.options[e.selectedIndex].value;
            strUser = "0";
            integer document.getElementById("CodeId").value = 0;
            document.getElementById("CodeName").value = "";
            document.getElementById("CodeValue").value = "";
        }
</script>

函数CodeChange(){
var filesContentJS=“$filesContents”
var index=filecontentjs.selectedIndex;
var e=document.getElementById(“代码列表”);
var strUser=e.options[e.selectedIndex].value;
strUser=“0”;
整数文档.getElementById(“CodeId”).value=0;
document.getElementById(“代码名”).value=“”;
document.getElementById(“CodeValue”).value=“”;
}
更新的javascript

以及表格html和php本身,以供参考:

<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 size="1" name="CodeList" id="CodeList" onchange="CodeChange();"><option value="0">(Add New Code)</option>
<?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>";
 }
}
?>
</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>
下面是您保存的代码列表。要编辑代码,请从列表中选择它。
(添加新代码)
保存的代码
说明:
代码:
尝试使用

var e = document.getElementById("CodeList");
var strUser = e.options[e.selectedIndex].value;

您的PHP数组仍然是一个数组。你必须把它转换成JS。 因此,在完成所有
$filecontents[$file]=file\u get\u contents($directory,$file)之后,那么您需要JS:

<script>
var filesContentJS = <?=json_encode($filesContents) ?>;
function CodeChange() {
var e = document.getElementById("CodeList"); // getting dropdown element
if (e.selectedIndex<=0) { // nothing selected - clean form
    document.getElementById("CodeId").value = 0;
    document.getElementById("CodeName").value = "";
    document.getElementById("CodeValue").value = "";
} else {
    var eStr = e.options[e.selectedIndex].value; // getting current element value
    // fill the form with data
    document.getElementById("CodeId").value = 0;// not sure what CodeId is - but this is the place to fill it
    document.getElementById("CodeName").value = eStr;
    document.getElementById("CodeValue").value = filesContentJS[eStr];
}
</script>

var filesContentJS=;
函数CodeChange(){
var e=document.getElementById(“CodeList”);//获取下拉元素

如果(e.selectedIndexThank you moki,我编辑了我的原始帖子以显示我所做的更改。我不确定我是否正确地将它们放在了那里。它返回了一个未捕获的语法错误,}else{,并说我的CodeChange()未定义。不确定我缺少什么。else文档后面的行。getElementById(“Selection”).value=“-1”;您不需要它。您有变量now strUser,因此使用strUser=“-1”更新它。现在返回的唯一错误是未捕获类型错误:无法读取此行上未定义的未定义类型。var strUser=e.options[e.selectedIndex].value;感谢moki消除了错误,但是当选择下拉列表时,它仍然没有将任何内容发布到表单中。我现在看到的唯一一件事是,当我检查下拉列表元素时,它告诉我在编辑中放置了什么:警告,我想这与AddictionAddition.txt需要在目录a之间有一个/有关nd文件名:file_get_contents(users/additionaddition.txt)[function.file get contents]:无法打开流:第141行的/home/revo/public_html/evo/codesaveindex.php中没有这样的文件或目录try with integer document.getElementById(“CodeId”)。值=0;