1

コードに奇妙な問題があります。ユーザーがプロファイル情報を編集するためのフォームを作成しようとしています。以下のソースのような単純な形式です。

私はテンプレートを使用しており、すべてのページが index.php に入り、ページがビルドされます。

問題は次のとおりです。インデックス内に print_r を配置して、_POST を出力して、何かが投稿されているかどうかを確認しました。しかし、フォームを送信しても何も投稿されません。テンプレート内に print_r を配置すると、何も問題がなく、フォームが投稿されたかのように print_r が突然表示されます。:S

アクションを別のページに設定しようとしましたが、効果がありません。

また、ログインフォームがあり、そのフォームは何らかの理由で正常に機能します。しかし、 edit_profile テンプレート内に配置すると、機能しなくなります。

edit_profile ページのソースコードは次のとおりです。

<!DOCTYPE html>
<html>

    <head>

        <meta charset="utf-8">
        <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
        <title>edit profile</title>

        <link rel="stylesheet" href="/style/jquery.mobile-1.0.1.css">
        <link rel="stylesheet" href="/style/main.css">

        <script src="/js/jquery-1.7.1.js"></script>
        <script src="/js/jquery.mobile-1.0.1.min.js"></script>
        <script src="/js/global.js"></script>

    </head>

    <body>

       <section data-role="page" id="edit_profile">

            <header data-role="header" id="header" data-position="fixed">
                <h1>edit profile</h1>

                <nav id="main_navigation" data-role="navbar">
                    <ul>
                        <li><a href="/"  >Home</a></li>
                        <li><a href="/news.html"  >News</a></li>
                        <li><a href="/about.html"  >about</a></li>
                        <li><a href="/contact.html"  >Contact</a></li>
                    </ul>
                </nav>

            </header>

            <div data-role="content">

               <h2>edit profile</h2>

               <form action="/account/edit_profile.html" method="post" >
                   <input type="hidden" name="edit" value="edit" />
                   <label for="username">Username:</label>
                   <input type="text" name="username" id="username" value="some username"/>

                   <label for="password">Password:</label>
                   <input type="password" name="password" id="password"/>

                   <label for="email">E-mail:</label>
                   <input type="email" name="email" id="email" value="example@example.com"/>

                   <label for="firstname">Firstname:</label>
                   <input type="text" name="firstname" id="firstname" value="some firstname"/>

                   <label for="lastname">Lastname:</label>
                   <input type="text" name="lastname" id="lastname" value="some lastname"/>

                   <label for="city">City:</label>
                   <input type="text" name="city" id="city" value="some city"/>

                   <label for="adres">Adress:</label>
                   <input type="text" name="adres" id="adres" value="some adres"/>

                   <label for="zip">Zip:</label>
                   <input type="text" name="zip" id="zip" value="some zip"/>

                   <div data-role="controlgroup" data-type="horizontal">
                       <a href="/account.html" data-role="button" data-icon="back">Back</a>
                       <button type="submit" data-icon="check">Save</button>
                   </div>

               </form>

             </div>

       <footer data-role="footer" data-position="fixed">

           <div data-role="controlgroup" data-type="horizontal">
               <a href="/" data-role="button" data-icon="home">Home</a>
               <a href="/account.html" data-role="button" data-icon="grid">Account</a>
               <a href="/logout.html" data-role="button" data-icon="gear" >Logout</a>
           </div>

        </footer>

    </section>


   </body>
   </html>

皆さんが私を助けてくれることを願っています。ご不明な点がございましたら、お知らせください。

4

1 に答える 1

1

あなたの HTML は適切に見え、jQM に対応しているはずです。私は jQM/php/MySQL を少し使ったことがあるので、その癖のいくつかを認識しています。

このような問題を防ぐために、作業中にコメント/$_POSTチェックをテキストファイルに書き込むことで問題を回避することをお勧めします(これを行うphpスクリプトの関数を呼び出すのが私が通常行っている方法です)。HTML を非表示にして独自のスタイルを表示しているときに、ページ コンテンツを動的にロードする jQM にはさまざまな問題があることがわかりました。ページのコンテンツが DOM から直接ロードされ、php スクリプトを完全に回避することがあります...

于 2012-04-30T19:28:47.570 に答える