2012-12-21 39 views
1

我是新来的PHP,并且试图制作一个非常简单的双页表单。任何帮助或指导将非常感激!php/jquery-mobile:第二页未在两个页面表单上运行验证

问题:

  • 第二页从第一页来它时,不运行错误验证。
  • 两个页面运行错误验证正确的URL直接输入

设置:

  • 1一个是HTML。它发布到第2页。
  • 页2是php和从第1页的数据被存储在输入字段

直播例如:

http://www.linplusg.com/page1.html

在IE中的第2页的URL从页1来后看起来是不正确的: http://www.linplusg.com/page1.html#/page2.php

在FF和Chrome的URL看起来不错,但我认为有一个闪烁/刷新happ效果图创作。

除了在进行页面POST时打开页面,还有其他事情发生吗?有什么价值可以储存新的领域?我的表单行为是否错误?茫然和困惑...

非常感谢你的任何帮助或建议。我一直在四处寻找答案,我的大脑感觉像果冻。好像我错过了一些简单的东西?!

第1页代码

<!DOCTYPE html> 
<html> 
    <head> 
     <meta charset="utf-8" /> 
     <meta name="viewport" content="width=device-width, initial-scale=1" /> 
     <title> 
     </title> 
     <link rel="stylesheet" href="https://ajax.aspnetcdn.com/ajax/jquery.mobile/1.2.0/jquery.mobile-1.2.0.min.css" /> 
     <link rel="stylesheet" href="css/my.css" /> 
     <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"> 
     </script> 
     <script src="https://ajax.aspnetcdn.com/ajax/jquery.mobile/1.2.0/jquery.mobile-1.2.0.min.js"> 
     </script> 
     <script src="http://ajax.aspnetcdn.com/ajax/jquery.validate/1.10.0/jquery.validate.min.js"> 
     </script> 
     <script> 
      $(document).ready(function(){ 
      $("#initialForm").validate(); 
      }); 
     </script> 
    </head> 
    <body> 
     <!-- Home --> 
     <div data-role="page" id="page1"> 
      <div data-role="content"> 
       <form id="initialForm" method="post" action="page2.php"> 
       <div data-role="fieldcontain"> 
        <fieldset data-role="controlgroup" data-mini="true"> 
         <label for="textinput3"> 
          Zip Code 
         </label> 
         <input name="zip" id="zip" maxlength=5 value="" type="text" class="required" /> 
        </fieldset> 
       </div> 
       <input type="submit" data-theme="e" value="Submit" /> 
       </form> 
      </div> 
     </div> 
    </body> 
</html> 

第2页代码

<!DOCTYPE html> 
<html> 
    <head> 
     <meta charset="utf-8" /> 
     <meta name="viewport" content="width=device-width, initial-scale=1" /> 
     <title> 
     </title> 
     <link rel="stylesheet" href="https://ajax.aspnetcdn.com/ajax/jquery.mobile/1.2.0/jquery.mobile-1.2.0.min.css" /> 
     <link rel="stylesheet" href="css/my.css" /> 
     <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"> 
     </script> 
     <script src="https://ajax.aspnetcdn.com/ajax/jquery.mobile/1.2.0/jquery.mobile-1.2.0.min.js"> 
     </script> 
     <script src="http://ajax.aspnetcdn.com/ajax/jquery.validate/1.10.0/jquery.validate.min.js"> 
     </script>  
     <script> 
      $(document).ready(function(){ 
      $("#fullForm").validate(); 
      }); 
     </script> 
    </head> 
    <body> 
     <!-- Home --> 
     <div data-role="page" id="page1"> 
      <div data-role="content"> 
       <form id="fullForm" method="get" action=""> 
       <div data-role="fieldcontain"> 
        <fieldset data-role="controlgroup" data-mini="true"> 
         <input name="zip" id="zip" value="<?php echo $_POST["zip"]; ?>" type="" /> 
        </fieldset> 
       </div> 
       <div data-role="fieldcontain"> 
        <fieldset data-role="controlgroup" data-mini="true"> 
         <label for="textinput3"> 
          First Name 
         </label> 
         <input name="first_name" id="first_name" placeholder="" value="" type="text" class="required"/> 
        </fieldset> 
       </div> 
       <input type="submit" data-theme="e" value="Submit" /> 
       </form> 
      </div> 
     </div> 
    </body> 
</html> 

回答

1

为防止出现这种情况,您需要在page1的表单元素中指定data-ajax =“false”。

<form id="initialForm" method="post" action="page2.php" data-ajax="false"> 

查看http://jquerymobile.com/test/docs/forms/forms-sample.html了解更多信息。

+0

这工作!非常感谢您为这两个明确的代码示例和背景信息!它的工作,并非常有帮助。好极了! – haley

0

没有PHP代码,我只是猜测,但也许这是因为在第二个形式,你有一个method="get"而不是method="post",而在PHP中你检查$_POST变量?

+0

感谢回答。实际上没有一个单独的PHP文件。代码是PHP文件 - 它只是有一点点的PHP。对不起,如果不明确。 @peterm解决了它上面! – haley

相关问题