我试图在一个带有Ajax的网页上的div中添加一个简单的python脚本(这里我已经使用了一个随机的双字生成器工作正常),并在下面有一个按钮重新加载它。该页面成功加载了脚本... 然而 ,我还没有完全了解缺失的部分,再次调用脚本重新加载随机的两个单词由python脚本制作(我理解为什么下面的代码是错误的,但我不能弄清楚如何使它正确!)。指针非常感谢!
(NB是的我正在使用Python 2.4,因为我的网站主机还没有升级 - 他们很快就会出现!是的,我看到了this的问题,但它对我不起作用...... )
HTML:
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8">
<title>Find a sentence</title>
<script src="http://code.jquery.com/jquery-2.0.3.js"></script>
<script>
$(function()
{
$.ajax({
url: "cgi-bin/test.py",
type: "GET",
data: {foo: 'bar', bar: 'foo'},
success: function(response){
$("#div").html(response);
}
});
});
</script>
</head>
<body>
<div id="div"></div>
<form name="input" action="cgi-bin/test.py" method="get">
<input type="submit" value="Regenerate!">
</form>
</body>
PYTHON:
#!/usr/bin/env python
# -*- coding: UTF-8 -*-
# enable debugging
import cgitb
cgitb.enable()
import linecache
from random import randrange
print "Content-Type: text/html"
print
# file length counter
def file_len(fname):
f = open(fname)
try:
for i, l in enumerate(f):
pass
finally:
f.close()
return i + 1
# range sizes
one_size = file_len('text/one.csv')
two_size = file_len('text/two.csv')
# random lines
one_line = randrange(one_size) + 1
two_line = randrange(two_size) + 1
# outputs
one_out = linecache.getline('text/one.csv', one_line)
two_out = linecache.getline('text/two.csv', two_line)
# output
sentence = one_out.strip('\n') + " " + two_out.strip('\n') + " "
print sentence
答案 0 :(得分:1)
好吧,我认为必须点击&#34; Regenerate&#34;要重新加载的表单按钮。我的想法是将ajax逻辑放在一个单独的函数中。我不认为你需要那里的表格,因为你的重新加载电话现在是ajax电话。
<head>
<script>
function reload() {
$.ajax({
url: "cgi-bin/test.py",
type: "GET",
data: {foo: 'bar', bar: 'foo'},
dataType : "html",
success: function(response){
$("#div").html(response);
}
});
}
$(window).load(function() {
reload();
$("#reload_button").click(function() {
reload();
});
});
</script>
</head>
<body>
<div id="div"></div>
<input type="button" id="reload_button" value="Regenerate!">
</body>