Chinaunix

标题: cgi+perl+ajax初探 [打印本页]

作者: hydah    时间: 2011-12-23 02:46
标题: cgi+perl+ajax初探
       本来任务要求的是用perl实现cgi脚本即可。但是普通的方法都会刷新页面。我想要的结果是不刷新页面,在原页面上进行交互。即通过cgi返回的信息可以作为原网页的部分内容。所以这需要用到ajax。
很遗憾,在网上没有多少相关的资料。而且手边的教科书上没有说到perl和ajax的结合运用。自己胡乱摸索了一下,已经成功实现不离开页面将信息传给服务器端的cgi脚本,并将服务器端传回来的反馈信息得到,通过javascript动态改变页面内容。但是一个头疼的问题是,通过innerHTML改变div的内容后,页面会自动刷新。使得反馈信息在原页面上一闪而过。没有解决。懒得弄得了。暂时吧源码贴在这。
  1. <script type="text/javascript">
  2.     function loadXMLDoc()
  3.     {
  4.     var xmlhttp;
  5.     if (window.XMLHttpRequest)
  6.      {// code for IE7+, Firefox, Chrome, Opera, Safari
  7.      xmlhttp=new XMLHttpRequest();
  8.      }
  9.     else
  10.      {// code for IE6, IE5
  11.      xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  12.      }
  13.      var url="";
  14.      var name=document.getElementsByName("name")[0].value;
  15.      var age=document.getElementsByName("age")[0].value;
  16.      var gender=document.getElementsByName("gender")[0].value;
  17.      var email=document.getElementsByName("email")[0].value;
  18.      url="?name="+name+"&age="+age+"&gender="+gender+"&email="+email;
  19.      alert(url);
  20.     xmlhttp.open("GET","../../cgi-bin/infoQuesAdd1.pl"+url,false);
  21.     xmlhttp.send(null);
  22.     //document.getElementById("displayboard").innerHTML=xmlhttp.responseText;
  23.     alert(xmlhttp.responseText);
  24.     }
  25. </script>
 
       通过ajax对象将获得的信息通过GET方法传到服务器端。服务器端通过perl脚本的param函数分析参数并作相应处理,且做出反馈。反馈信息由xmlhttp.responseText得到。





欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2