1

私はphpを初めて使用し、非常に単純な2ページのフォームを作成しようとしています。どんな助けやガイダンスも大歓迎です!

問題:

  • 2番目のページは、最初のページからアクセスしたときにエラー検証を実行しません。
  • 両方のページでエラー検証が正しく実行されますURLが直接入力されています

設定:

  • 1ページ目はHTMLです。Page2にPOSTします。
  • ページ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を実行するときにページを開くだけでなく、他に何かが起こりますか?新しいフィールドに何か値が保存されますか?フォームアクションを間違って行っていますか?ボーッと混乱して...

ヘルプや提案をありがとうございました。私は一晩中答えを探していました、そして私の脳はゼリーのように感じます。シンプルなものが足りないようですね!

Page1コード

<!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のform要素で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コードがなければ、推測できますが、2番目の形式では、のmethod="get"代わりにがあり、PHPでは変数method="post"をチェックするためでしょうか。$_POST

于 2012-12-21T08:06:11.947 に答える
0

data-role "page"を使用してスクリプトをdiv内に移動することで、ajaxトランジションを保持し、2番目のページでJavaScriptを実行させることができます。

ここでこの答えを参照してください:https ://stackoverflow.com/a/6428127/2066267

于 2013-02-12T21:07:53.467 に答える