使用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;" ></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="https://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; 以上内容是小编给大家介绍的基于HTML实现表单提交后无刷新页面的相关内容,希望对大家有所帮助!
|