采用ajax提交POST数据的例子

问题描述


我们将一个form中的input和checkbox中的数据异步提交到php服务器,经过处理之后传回。


提交之后显示的位置:



难点分析


采用from表单的onsubmit属性阻止表单的提交


  1. <formaction="http://www.baidu.com"onsubmit="returncheck()">

通过check函数的return false;操作阻止表单的提交,实现不刷新提交数据的目的。

获取复选框选中的选项的值


checkbox标签部分:

  1. <inputtype="checkbox"name="checkbox"id="multi-choiceA"value="A">选项A<br/>
  2. <inputtype="checkbox"name="checkbox"id="multi-choiceB"value="B">选项B<br/>
  3. <inputtype="checkbox"name="checkbox"id="multi-choiceC"value="C">选项C<br/>
  4. <inputtype="checkbox"name="checkbox"id="multi-choiceD"value="D">选项D<br/>


javascript处理部分:

  1. varstr=document.getElementsByName("checkbox");
  2. varanswer="";
  3. for(vari=0;i<str.length;i++)
  4. {
  5. if(str[i].checked==true)
  6. {
  7. answer+=str[i].value;
  8. }
  9. }
  10. if(answer=="")alert('请勾选答案,然后提交');
  11. else
  12. {//用户勾选了相关答案,进行相关处理
  13. varxmlhttp;

采用ajax技术与后台进行交互


  1. varxmlhttp;
  2. xmlhttp=newXMLHttpRequest();
  3. xmlhttp.open("POST","function.php",true);
  4. xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
  5. xmlhttp.send("qid="+qid+"&answer="+answer);
  6. xmlhttp.onreadystatechange=function()
  7. {
  8. if(xmlhttp.readyState==4&&xmlhttp.status==200)
  9. {
  10. document.getElementById("myDiv").innerHTML=xmlhttp.responseText;
  11. }
  12. };

完整代码

前台index.html

  1. <!doctypehtml>
  2. <html>
  3. <head>
  4. <metacharset="utf-8">
  5. <title>Koastal</title>
  6. </head>
  7. <body>
  8. <formaction="http://www.baidu.com"onsubmit="returncheck()">
  9. 问题序号:<inputtype="text"id="qid"><br/>
  10. 选项:<br/>
  11. <inputtype="checkbox"name="checkbox"id="multi-choiceA"value="A">选项A<br/>
  12. <inputtype="checkbox"name="checkbox"id="multi-choiceB"value="B">选项B<br/>
  13. <inputtype="checkbox"name="checkbox"id="multi-choiceC"value="C">选项C<br/>
  14. <inputtype="checkbox"name="checkbox"id="multi-choiceD"value="D">选项D<br/>
  15. <inputtype="submit"value="提交">
  16. </form>
  17. <divid="myDiv"></div>
  18. <scripttype="text/javascript">
  19. que="<?phpecho$que;?>";
  20. answer="<?phpecho$answer;?>";
  21. functioncheck()
  22. {
  23. varqid=document.getElementById("qid").value;
  24. varstr=document.getElementsByName("checkbox");
  25. varanswer="";
  26. for(vari=0;i<str.length;i++)
  27. {
  28. if(str[i].checked==true)
  29. {
  30. answer+=str[i].value;
  31. }
  32. }
  33. if(answer=="")alert('请勾选答案,然后提交');
  34. else
  35. {//用户勾选了相关答案,进行相关处理
  36. varxmlhttp;
  37. xmlhttp=newXMLHttpRequest();
  38. xmlhttp.open("POST",true);
  39. xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
  40. xmlhttp.send("qid="+qid+"&answer="+answer);
  41. xmlhttp.onreadystatechange=function()
  42. {
  43. if(xmlhttp.readyState==4&&xmlhttp.status==200)
  44. {
  45. document.getElementById("myDiv").innerHTML=xmlhttp.responseText;
  46. }
  47. };
  48. }
  49. returnfalse;
  50. }
  51. </script>
  52. </body>
  53. </html>

后台function.php
  1. <!doctypehtml>
  2. <html>
  3. <head>
  4. <metacharset="utf-8">
  5. <title>koastal</title>
  6. </head>
  7. <body>
  8. <?php
  9. $qid=intval($_POST["qid"]);
  10. $answer=trim($_POST["answer"]);
  11. echo"您提交的题目编号是".$qid.",答案是".$answer;
  12. ?>
  13. </form>
  14. </body>
  15. </html>

效果显示:

相关文章

$.AJAX()方法中的PROCESSDATA参数 在使用jQuery的$.ajax()方...
form表单提交的几种方式 表单提交方式一:直接利用form表单提...
文章浏览阅读1.3k次。AJAX的无刷新机制使得在注册系统中对于...
文章浏览阅读1.2k次。 本文将解释如何使用AJAX和JSON分析器在...
文章浏览阅读2.2k次。/************************** 创建XML...
文章浏览阅读3.7k次。在ajax应用中,通常一个页面要同时发送...