加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

采用ajax提交POST数据的例子

发布时间:2020-12-16 00:16:22 所属栏目:百科 来源:网络整理
导读:问题描述 我们将一个form中的input和checkbox中的数据异步提交到php服务器,经过处理之后传回。 提交之后显示的位置: 难点分析 采用from表单的onsubmit属性阻止表单的提交 [html] view plain copy form action = "http://www.baidu.com" onsubmit = "return

问题描述


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


提交之后显示的位置:



难点分析


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


[html] view plain copy
  1. <formaction="http://www.baidu.com"onsubmit="returncheck()">

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

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


checkbox标签部分:

[html] view plain copy
  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处理部分:

[html] view plain copy
  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技术与后台进行交互


[html] view plain copy
  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

[html] view plain copy
  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
[html] view plain copy
  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>

效果显示:

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读