我试图让输入字段将文本添加到服务器上的文件中,然后动态地将其添加到网页上的select元素中,但是效果不是很好。目前,我收到一个错误消息,即e1为null,并且文本未附加到我的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/