2013-11-09 46 views
0

。例如CGI脚本,我有html页面:结果在同一个页面

<html> 
    <body> 
     <form action="http://127.0.0.1/cgi-bin/test.py" method="post" target="_blank"> 
      PRESS BUTTON TO TEST PYTHON CGI 
      <br><input type="submit" value="Submit" /> 
     </form> 
    </body> 
</html> 

和Python CGI脚本(test.py):

#!/usr/bin/python 
print "Content-type: text/html" 
print 
print "<html><head><title>CGI</title></head>" 
print "<body>" 
print "hello cgi" 
print "</body>" 
print "</html>" 

所以,当我按下按钮,它会打开NEW页面,并显示脚本的结果('hello cgi') 如何在同一页面上使用按钮输出'hello cgi'? (不是新的页面!)

感谢您的帮助。

回答

-1

最后,我决定使用AJAX。

的Python:

#!/usr/local/bin/python 
import cgi 
str = 'hello from cgi!' 
print "Content-type: text/html\n\n" 
print "%s" % str 

HTML:

<html> 
<head> 
<title>Simple Ajax Example</title> 
<script type="text/javascript"> 
function xmlhttpPost(strURL) { 
    var xmlHttpReq = false; 
    var self = this; 
    // Mozilla/Safari 
    if (window.XMLHttpRequest) { 
     self.xmlHttpReq = new XMLHttpRequest(); 
    } 
    // IE 
    else if (window.ActiveXObject) { 
     self.xmlHttpReq = new ActiveXObject("Microsoft.XMLHTTP"); 
    } 
    self.xmlHttpReq.open('POST', strURL, true); 
    self.xmlHttpReq.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); 
    self.xmlHttpReq.onreadystatechange = function() { 
     if (self.xmlHttpReq.readyState == 4) { 
      updatepage(self.xmlHttpReq.responseText); 
     } 
    } 
    self.xmlHttpReq.send(getquerystring()); 
} 

function getquerystring() { 
    var form  = document.forms['f1']; 
    var word = form.word.value; 
    qstr = encodeURI(word); 
    return qstr; 
} 

function updatepage(str){ 
    document.getElementById("result").innerHTML = str; 
} 
</script> 
</head> 
<body> 
<form name="f1"> 
    <input value="Submit" type="button" onclick='JavaScript:xmlhttpPost("http://127.0.0.1/cgi-bin/test.py")'></p> 
    <div id="result"></div> 
</form> 
</body> 
</html> 
+1

那不是跑。 ??? – user3440716

相关问题