通常對於無刷新提交表單,我們都是運用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" > </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" 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程序設計有所幫助。