django中使用javascript的动态dropdownlists
我试图用.exe程序执行的结果填充dropdownlist。.exe将返回由特殊字符分隔的项目串联。这将依次被views.py中的相应视图捕获,并呈现到.html中。在这个.html中,有javascript代码在窗口加载时运行,使用特殊字符分割呈现的字符串,并(理论上)填充dropdownlist 我的部分代码如下:django中使用javascript的动态dropdownlists,javascript,c++,python,html,django,Javascript,C++,Python,Html,Django,我试图用.exe程序执行的结果填充dropdownlist。.exe将返回由特殊字符分隔的项目串联。这将依次被views.py中的相应视图捕获,并呈现到.html中。在这个.html中,有javascript代码在窗口加载时运行,使用特殊字符分割呈现的字符串,并(理论上)填充dropdownlist 我的部分代码如下: C++代码(将被编译为.exe) 最后是包含javascript函数的html文件 <html> <head> <me
C++代码(将被编译为.exe)
最后是包含javascript函数的html文件<html>
<head>
<meta http-equiv="Content-type" content="text/html; charset=utf-8" />
<title></title>
<script type="text/javascript" charset="utf-8">
window.onload = function Func() {
var lists = document.getElementById('list');
var liststxt = new Array();
liststxt[1] = "{{ list }}";
var items = liststxt[1].split("&");
for (var count = lists.options.length-1; count >-1; count--){
lists.options[count] = null;
}
for (i=0; items.length; i++){
var values = items[i].split("$");
var option = new Option(values[1], values[2], false, false);
lists.options[lists.length] = option;
}
}
</script>
</head>
<body>
<form action="" method="get" accept-charset="utf-8">
<select name="list" id="list">
<option>--</option>
</select>
</form>
</body>
</html>
window.onload=函数Func(){
var list=document.getElementById('list');
var liststxt=新数组();
liststxt[1]=“{{list}}”;
var items=listsText[1]。拆分(&);
对于(var count=lists.options.length-1;count>-1;count--){
lists.options[count]=null;
}
对于(i=0;items.length;i++){
var值=项目[i]。拆分($);
var期权=新期权(值[1],值[2],假,假);
lists.options[lists.length]=选项;
}
}
--
我想我已经尝试了几乎所有的中间可能性,它们工作得非常完美(硬编码一个字符串,从exe接收它,在html中直接呈现.exe的结果,使用javascript处理它,等等),但是如果我把所有的东西放在一起,它就无法填充dropdownlist
我写这段代码是为了有几个依赖的dropdownlists,我是在看到概念验证之后做的。我没有使用Ajax(或Dajax,或Dajaxice),因为我在尝试了很多次之后无法正确安装它
非常感谢 您不需要“安装”Ajax:它是一种技术,而不是一个库。但是,您能提供一个exe文件输出的示例吗?exe输出如下:
1$First Item&2$Second Item&3$Third Item…
此信息在视图中接收,因为我可以使用HttpResponse在屏幕上显示它。它也到达了html,因为我可以将它呈现到html并显示它。但是我在javascript函数中使用它失败了。另一方面,如果我将从exe获得的相同字符串传递给javascript函数,但现在我在views.py中对其进行硬编码,它会工作,您确定它完全相同吗?在价值之前或之后是否有额外的东西?如果在视图中放置一个print语句,例如print“Output:“+y+”…”
,您会得到什么?是的,我看不出有任何区别……如果我使用print获取在“y”中得到的内容,我复制它并在视图中手动硬编码,那么javascript工作正常
os.chdir(r'C:/directory')
proc = subprocess.Popen([r'C:/directory/Application.exe'], stdout=subprocess.PIPE)
y = proc.stdout.read()
proc.wait()
return render_to_response('home.html', {'list': y})
<html>
<head>
<meta http-equiv="Content-type" content="text/html; charset=utf-8" />
<title></title>
<script type="text/javascript" charset="utf-8">
window.onload = function Func() {
var lists = document.getElementById('list');
var liststxt = new Array();
liststxt[1] = "{{ list }}";
var items = liststxt[1].split("&");
for (var count = lists.options.length-1; count >-1; count--){
lists.options[count] = null;
}
for (i=0; items.length; i++){
var values = items[i].split("$");
var option = new Option(values[1], values[2], false, false);
lists.options[lists.length] = option;
}
}
</script>
</head>
<body>
<form action="" method="get" accept-charset="utf-8">
<select name="list" id="list">
<option>--</option>
</select>
</form>
</body>
</html>