1

我是 php 新手,正在尝试制作一个非常简单的两页表单。任何帮助或指导将不胜感激!

问题:

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

设置:

  • 第 1 页是 HTML。它发布到第 2 页。
  • 第 2 页是 php,第 1 页的数据存储在输入字段中

现场示例:

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

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

在 FF 和 Chrome 中,URL 看起来不错,但我认为发生了闪烁/刷新。

除了在对页面进行 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>
4

3 回答 3

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

于 2012-12-21T08:15:55.973 回答
0

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

于 2012-12-21T08:06:11.947 回答
0

您可以保留 ajax 转换,并通过将脚本移动到具有数据角色“页面”的 div 内,仍然让您的 javascript 在第二页上执行。

在此处查看此答案:https ://stackoverflow.com/a/6428127/2066267

于 2013-02-12T21:07:53.467 回答