2013-11-09 3 views
0

Например, у меня есть HTML-страницу:Результат CGI скрипта на той же странице

<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>" 

Так что, когда я нажать кнопку, он откроет новую страницу с результатами скрипта ('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

Смежные вопросы