php HTML无刷新提交表单


Posted in PHP onApril 05, 2016

通常对于无刷新提交表单,我们都是运用ajax实现的。前段时间跟着老大了解到另一种无刷新提交表单的方法,是利用iframe框架实现的。现在整理出来分享给大家。
第一种:
html页面

<!DOCTYPE HTML>
<html lang="en-US">
<head>
  <meta charset="utf-8">
  <title>无刷新提交表单</title>
  <style type="text/css">
    ul{ list-style-type:none;}
  </style>
</head>
<body>
  <iframe name="formsubmit" style="display:none;">
  </iframe>
  
  <!-- 将form表单提交的窗口指向隐藏的ifrmae,并通过ifrmae提交数据。 -->
  <form action="form.php" method="POST" name="formphp" target="formsubmit">
    <ul>
      <li>
        <label for="uname">用户名:</label>
        <input type="text" name="uname" id="uname" />
      </li>
      <li>
        <label for="pwd">密 码:</label>
        <input type="password" name="pwd" id="pwd" />
      </li>
      <li>
        <input type="submit" value="登录" />
      </li>
    </ul>
  </form>
</body>
</html>

PHP页面:form.php

<?php
 //非空验证
 if(empty($_POST['uname']) || empty($_POST['pwd']))
 {
  echo '<script type="text/javascript">alert("用户名或密码为空!");</script>';
  exit;
 }
 
 //验证密码
 if($_POST['uname'] != 'jack' || $_POST['pwd'] != '123456')
 {
  echo '<script type="text/javascript">alert("用户名或密码不正确!");</script>';
  exit;
 } else {
  echo '<script type="text/javascript">alert("登录成功!");</script>';
  exit;
 }

第二种:
html页面

<!DOCTYPE HTML>
<html lang="en-US">
<head>
  <meta charset="utf-8">
  <title>iframe提交表单</title>
</head>
<body>
  <iframe name="myiframe" style="display:none;" onload="iframeLoad(this);"></iframe>
  <form action="form.php" target="myiframe" method="POST">
   用户名:<input type="text" name="username" /><br/>
   密 码:<input type="password" name="userpwd" /><br/>
   
   <input type="submit" value="登录" />
  </form>
  
  <script type="text/javascript">
   function iframeLoad(iframe){
    var doc = iframe.contentWindow.document;
    var html = doc.body.innerHTML;
    if(html != ''){
     //将获取到的json数据转为json对象
     var obj = eval("("+html+")");
     //判断返回的状态
     if(obj.status < 1){
      alert(obj.msg);
     }else{
      alert(obj.msg);
      window.location.href="http://www.baidu.com";
     }
    }
   }
  </script>
</body>
</html>

PHP页面:form.php

<?php
 //设置时区
 date_default_timezone_set('PRC');
 /*
  返回的提交消息
  status:状态
  msg:提示信息
 */
 $msg = array('status'=>0,'msg'=>'');
 
 //获取提交过来的数据
 $name = $_POST['username'];
 $pwd = $_POST['userpwd'];
 
 //模拟登录验证
 $user = array();
 $user['name'] = 'jack';
 $user['pwd'] = 'jack2014';
 
 if($name != $user['name']){
  $msg['msg'] = '该用户未注册!';
  $str = json_encode($msg);
  echo $str;
  exit;
 }else if($pwd != $user['pwd']){
  $msg['msg'] = '输入的密码错误!';
  $str = json_encode($msg);
  echo $str;
  exit;
 }
 
 $msg['msg'] = '登录成功!';
 $msg['status'] = 1;
 $str = json_encode($msg);
 echo $str;

以上就是本文的全部内容,希望对大家学习php程序设计有所帮助。

PHP 相关文章推荐
解析php file_exists无效的解决办法
Jun 26 PHP
PHP实现使用优酷土豆视频地址获取swf播放器分享地址
Jun 05 PHP
ThinkPHP快速入门实例教程之数据分页
Jul 01 PHP
php从memcache读取数据再批量写入mysql的方法
Dec 29 PHP
php实现微信公众平台账号自定义菜单类
Oct 11 PHP
解析PHP的Yii框架中cookie和session功能的相关操作
Mar 17 PHP
Yii配置与使用memcached缓存的方法
Jul 13 PHP
总结PHP删除字符串最后一个字符的三种方法
Aug 30 PHP
PHP的curl函数的用法总结
Feb 14 PHP
PHP数组遍历的几种常见方式总结
Feb 15 PHP
laravel利用中间件防止未登录用户直接访问后台的方法
Sep 30 PHP
对laravel的session获取与存取方法详解
Oct 08 PHP
PHP如何使用Memcached
Apr 05 #PHP
初识PHP中的Swoole
Apr 05 #PHP
PHP中file_exists使用中遇到的问题小结
Apr 05 #PHP
PHP读取大文件的多种方法介绍
Apr 04 #PHP
PHP如何将XML转成数组
Apr 04 #PHP
php自动加载方式集合
Apr 04 #PHP
php文件上传的两种实现方法
Apr 04 #PHP
You might like
php 修改、增加xml结点属性的实现代码
2013/10/22 PHP
php jquery 多文件上传简单实例
2013/12/23 PHP
以实例全面讲解PHP中多进程编程的相关函数的使用
2015/08/18 PHP
JQuery live函数
2010/12/24 Javascript
js实现的仿新浪微博完美的时间组件升级版
2011/12/20 Javascript
Javascript中call与apply的学习笔记
2014/09/22 Javascript
Jquery中的$.each获取各种返回类型数据的使用方法
2015/05/03 Javascript
javascript常用的方法分享
2015/07/01 Javascript
JS+CSS实现TreeMenu二级树形菜单完整实例
2015/09/18 Javascript
JS判断是否为JSON对象及是否存在某字段的方法(推荐)
2016/11/29 Javascript
jQuery+PHP+Mysql实现抽奖程序
2020/04/12 jQuery
React Native之ListView实现九宫格效果的示例
2017/08/02 Javascript
解决vue单页使用keep-alive页面返回不刷新的问题
2018/03/13 Javascript
[20:30]职业巡回赛回顾
2018/08/09 DOTA
[50:27]OG vs LGD 2018国际邀请赛淘汰赛BO3 第一场 8.26
2018/08/30 DOTA
跟老齐学Python之玩转字符串(2)
2014/09/14 Python
用 Python 连接 MySQL 的几种方式详解
2018/04/04 Python
详解python分布式进程
2018/10/08 Python
为什么str(float)在Python 3中比Python 2返回更多的数字
2018/10/16 Python
Python机器学习之scikit-learn库中KNN算法的封装与使用方法
2018/12/14 Python
python实践项目之监控当前联网状态详情
2019/05/23 Python
django 模版关闭转义方式
2020/05/14 Python
基于Python中random.sample()的替代方案
2020/05/23 Python
html5中canvas学习笔记2-判断浏览器是否支持canvas
2013/01/06 HTML / CSS
linux面试题参考答案(6)
2016/06/23 面试题
Java Servlet API中forward() 与redirect()的区别
2014/04/20 面试题
学生会主席就职演讲稿
2014/01/14 职场文书
英语生日邀请函
2014/01/23 职场文书
公司委托书格式
2014/08/01 职场文书
社区精神文明建设汇报材料
2014/08/17 职场文书
学校党的群众路线教育实践活动整改措施
2014/10/25 职场文书
2014年物资管理工作总结
2014/12/02 职场文书
2016年国陪研修感言
2015/11/18 职场文书
2016年教师节贺卡寄语
2015/12/04 职场文书
观看《筑梦中国》纪录片心得体会
2016/01/18 职场文书
基于Go Int转string几种方式性能测试
2021/04/28 Golang