質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

Webサイト

一つのドメイン上に存在するWebページの集合体をWebサイトと呼びます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

ログイン

ログインは、ユーザーがコンピューターシステムにアクセスするプロセスの事を呼びます。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

Q&A

解決済

1回答

4588閲覧

モーダルウインドウでフォーム

ryohasegawa

総合スコア437

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

Webサイト

一つのドメイン上に存在するWebページの集合体をWebサイトと呼びます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

ログイン

ログインは、ユーザーがコンピューターシステムにアクセスするプロセスの事を呼びます。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

0グッド

0クリップ

投稿2017/03/17 15:24

モーダルウインドウ上でタブメニューを付け、ログインと新規登録を行えるようにしたいです。
そこで、以下のhtmlを書きました。

php

1<section id="modalwindow"> 2 <div id="mask" class="hidden"></div> 3 4 <div id="window" class="hidden"> 5 <div id="close" class="hidden">☓ 閉じる</div><br> 6 7 <div id="tabmenu"> 8 <ul class="tab"> 9 <li><a href="#" data-id="login" class="active menu_item">ログイン</a></li> 10 <li><a href="#" data-id="sigup" class="menu_item">新規登録</a></li> 11 </ul> 12 <div class="tabmenu active" id="login"> 13 <div id="box"> 14 <form action="" method="post" id="login"> 15 <p> 16 <input type="text" name="email" placeholder="メールアドレス" value="<?= isset($app->getValues()->email) ? h($app->getValues()->email) : ''; ?>"> 17 </p> 18 <p> 19 <input type="password" name="password" placeholder="パスワード"> 20 </p> 21 <p class="err"><?= h($app->getErrors('login')); ?></p> 22 <div class="btn" onclick="document.getElementById('login').submit();">ログイン</div> 23 <input type="hidden" name="token" value="<?= h($_SESSION['token']); ?>"> 24 <input type="hidden" name="posttype" value="login"> 25 </form> 26 </div> 27 </div> 28 <div class="tabmenu" id="sigup"> 29 <div id="box"> 30 <form action="" method="post" id="signup"> 31 <p> 32 <input type="text" name="email" placeholder="メールアドレス" value="<?= isset($app->getValues()->email) ? h($app->getValues()->email) : ''; ?>"> 33 </p> 34 <p class="err"><?= h($app->getErrors('email')); ?></p> 35 <p> 36 <input type="password" name="password" placeholder="パスワード"> 37 </p> 38 <p class="err"><?= h($app->getErrors('password')); ?></p> 39 <div class="btn" onclick="document.getElementById('signup').submit();">新規登録</div> 40 <input type="hidden" name="token" value="<?= h($_SESSION['token']); ?>"> 41 <input type="hidden" name="posttype" value="signup"> 42 </form> 43 </div> 44 </div> 45 </div> 46 <script src="./javascript/tabmenu.js"></script> 47 </div> 48 </section>

こうすると、イメージ説明
このように表示され、一応入力することができます。
ですが、ログインのフォームが送信されません。(新規登録は送信されます。)
しかも、ログインのフォーム部分以外をコメントにし実行すると、送信されます。
なので、コード敵問題では無いと思います。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

  • id属性の値はユニークにしてください。

以下のようにするとログインフォームでもsubmitが実行されましたが、いかがでしょうか。

HTML

1<!DOCTYPE html> 2<html lang="ja"> 3<head> 4 <meta charset="UTF-8"> 5 <title>タイトル</title> 6 <style type="text/css"> 7 * { 8 margin: 0; 9 padding: 0; 10 } 11 </style> 12</head> 13<body> 14<section id="modalwindow"> 15 <div id="mask" class="hidden"></div> 16 17 <div id="window" class="hidden"> 18 <div id="close" class="hidden">☓ 閉じる</div> 19 <br> 20 21 <div id="tabmenu"> 22 <ul class="tab"> 23 <li><a href="#" data-id="login" class="active menu_item">ログイン</a></li> 24 <li><a href="#" data-id="sigup" class="menu_item">新規登録</a></li> 25 </ul> 26 <div class="tabmenu active" id="login1"> 27 <div id="box1"> 28 <form action="" method="post" id="login2"> 29 <p> 30 <input type="text" name="email" placeholder="メールアドレス" 31 value="<?= isset($app->getValues()->email) ? h($app->getValues()->email) : ''; ?>"> 32 </p> 33 <p> 34 <input type="password" name="password" placeholder="パスワード"> 35 </p> 36 <p class="err"><?= h($app->getErrors('login')); ?></p> 37 <div class="btn" onclick="document.getElementById('login2').submit();">ログイン</div> 38 <input type="hidden" name="token" value="<?= h($_SESSION['token']); ?>"> 39 <input type="hidden" name="posttype" value="login"> 40 </form> 41 </div> 42 </div> 43 <div class="tabmenu" id="sigup1"> 44 <div id="box2"> 45 <form action="" method="post" id="signup2"> 46 <p> 47 <input type="text" name="email" placeholder="メールアドレス" 48 value="<?= isset($app->getValues()->email) ? h($app->getValues()->email) : ''; ?>"> 49 </p> 50 <p class="err"><?= h($app->getErrors('email')); ?></p> 51 <p> 52 <input type="password" name="password" placeholder="パスワード"> 53 </p> 54 <p class="err"><?= h($app->getErrors('password')); ?></p> 55 <div class="btn" onclick="document.getElementById('signup2').submit();">新規登録</div> 56 <input type="hidden" name="token" value="<?= h($_SESSION['token']); ?>"> 57 <input type="hidden" name="posttype" value="signup"> 58 </form> 59 </div> 60 </div> 61 </div> 62 <script src="./javascript/tabmenu.js"></script> 63 </div> 64</section> 65</body> 66</html>

投稿2017/03/17 15:57

s8_chu

総合スコア14731

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ryohasegawa

2017/03/18 13:16

フォーム内のIDはなぜ変えないといけないのですかね? なにか理由はあるのですか? それと、返信おそくなってすいません。
ryohasegawa

2017/03/18 13:19

スタイルの適応の関係で自分でフォーム内だけ2を付けたら解決しました。
s8_chu

2017/03/19 00:17

HTMLではid属性の値はユニークでなければなりません。ウェブサイトを作るときにHTMLは必須なので、一度HTMLに関連する書籍を購入して読んでみると良いと思います。
ryohasegawa

2017/03/19 08:25

なるほど、IDは重複してはいけないんですね。ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問