javascript - 使用 XHR 更新服务器文件并向 html select 添加选项

标签 javascript python html xmlhttprequest

我试图让输入字段将文本添加到服务器上的文件中,并将其动态添加到网页上的选择元素中,但效果不佳。目前,我收到一条错误,指出 e1 为空,并且文本未附加到我的 testdoc.txt 文本文件中。如果我取出代码来尝试写入文本文件,则可以正常工作。我还尝试在不动态添加到选择字段的情况下查看它是否会附加到文件中,但这不会发生。在 firebug 中,我确实看到了该帖子并且看到了响应,但它没有被附加到文件中。下面是我当前的代码片段。

function submitxhr(){
 var e1=document.getElementById('item');
 var e2=document.getElementById('items');
 var o=document.createElement('option');
 var xhr = new XMLHttpRequest();
 xhr.overrideMimeType("text/plain; charset=x-user-defined");
 o.value=e1.value;
 o.text=e1.value;
 e2.options.add(o);
 xhr.open("POST","testdoc.txt");  
 xhr.send(e1);
};

 <form id="myForm"> 
   <input name="item" type="text" value="" />  
   <select size="3" id="items" name="items">
   <input type="button" value="submit"  ONCLICK="submitxhr()">   
 </form>

我的下一步是为选择表单中的选项创建一个删除按钮,但我还没有到达那里,但任何帮助将不胜感激。

[更新] 如果我能够将 XHR POST 传递到 python CGI 脚本中,我就可以计算出添加和删除。目前,我无法将 POST 传递到 python CGI 脚本中。传递时找不到 e1 变量。

import cgi
import cgitb
cgitb.enable()

form = cgi.FieldStorage()

value1 = form.getvalue[e1]

f = open(r'testdoc.txt', 'a')
f.write(e1)
f.close()

我什至检查了这个问题,但是当我使用它制作测试脚本时,我还得到一个空值,“message = 'writelines() 需要一个可迭代的参数'”。 In my Python CGI script, how do I save to disk a file uploaded via POST request of data entered by the user in a form?

看起来该值确实已被传递,但也许我没有正确提取数据。 f = , f.writelines = , fileitem = FieldStorage('userfile', None, 'sghjsjh')

谢谢

最佳答案

您忘记将 id 添加到第一个 input 字段!应该是:

<input id="item" name="item" type="text" value="" />

而不是

<input name="item" type="text" value="" />

关于javascript - 使用 XHR 更新服务器文件并向 html select 添加选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19613590/

相关文章:

javascript - 加载文件后运行 gulp 任务

javascript - ReactJS:创建鼠标悬停事件时出现重复

python - 如果 pandas 末尾有 "-"符号,则将值转换为负 float

html - 在 css 中设置矢量本身的样式而不是整个 SVG

javascript - 如何在div中设置100%的高度?

javascript - 如何获取多个下拉框onclick的选中值?

javascript - 链接到 anchor 并打开 Accordion

python - 文件大小总和的脚本

python - Pandas DataFrame.loc 返回空 DataFrame

javascript - 更改parentNode.innerHTML后,无法访问parentNode