gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 16:23:06 25 4
gpt4 key购买 nike

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

How fill form data from Dropdown?

尽管它有点延续。

我正在尝试使用 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>

更新了 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>

最佳答案

你的 PHP 数组仍然是一个数组。你必须将其转换为JS。因此,在完成所有 $filesContents[$file] = file_get_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>

关于javascript - 在文本字段中显示下拉列表的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28935956/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com