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