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

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

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

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

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Ajax

Ajaxとは、Webブラウザ内で搭載されているJavaScriptのHTTP通信機能を使って非同期通信を利用し、インターフェイスの構築などを行う技術の総称です。XMLドキュメントを指定したURLから読み込み、画面描画やユーザの操作などと並行してサーバと非同期に通信するWebアプリケーションを実現することができます。

HTML

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

Q&A

解決済

2回答

4700閲覧

同じページ内でformのデータを渡したい

MeB

総合スコア104

PHP

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

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Ajax

Ajaxとは、Webブラウザ内で搭載されているJavaScriptのHTTP通信機能を使って非同期通信を利用し、インターフェイスの構築などを行う技術の総称です。XMLドキュメントを指定したURLから読み込み、画面描画やユーザの操作などと並行してサーバと非同期に通信するWebアプリケーションを実現することができます。

HTML

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

0グッド

1クリップ

投稿2018/03/02 10:42

編集2018/03/05 01:51

html

1<!-- エリア1 --> 2<div class="form-area active"> 3 <h3 class="blue-title">お問い合わせフォーム</h3> 4 <form action="" method="post" nema="form"> 5 <p>お名前<span>(必須)</span></p> 6 <input type="text" name="person_name" value=""> 7 <p>ご連絡先 Email<span>(必須)</span></p> 8 <input type="email" name="mail" value=""> 9 <p>お問い合わせ内容<span>(必須)</span></p> 10 <textarea name="inquiry_text"></textarea> 11 <div class="submit"><button><img src="images/check.png" alt="送信" type="submit"><span>確認画面</span></button></div><!-- このボタンを押すとエリア2が表示される --> 12 </form> 13 </div> 14 15 <?php 16 // フォームのボタンが押されたら 17 if ($_SERVER["REQUEST_METHOD"] == "POST") { 18 // フォームから送信されたデータを各変数に格納 19 $person_name = $_POST["person_name"]; 20 $email = $_POST["email"]; 21 $inquiry_text = $_POST["inquiry_text"]; 22 } 23 ?> 24 25<!-- エリア2 --> 26 <div class="form-area"> 27 <h3 class="blue-title">お問い合わせ内容 確認画面</h3> 28 <p class="supplement">お問い合わせ内容は以下でよろしいでしょうか。<br>よろしければ「 送信する 」ボタンを押してください。</p> 29 <form action="index_submit" method="get"> 30 <p>お名前</p> 31 <p><?php echo $person_name; ?></p> 32 <p>ご連絡先 Email</p> 33 <p><?php echo $email; ?></p> 34 <p>お問い合わせ内容</p> 35 <p><?php echo $inquiry_text; ?></p> 36 <div class="submit-box"> 37 <button><img src="images/back.png" alt="送信" /><span>もどる</span></button><!-- このボタンを押すとエリア1が表示される --> 38 <button><img src="images/send.png" alt="送信" /><span>送信</span></button><!-- このボタンを押すとエリア3が表示される --> 39 </div> 40 </form> 41 </div> 42 43<!-- エリア3 --> 44<div class="form-area"> 45 <h3 class="blue-title">送信しました。</h3> 46 <div class="submit-end"><button><img src="images/back.png" alt="送信" /><span>フォーム入力に戻る</span></button></div><!-- このボタンを押すとエリア1が表示される --> 47 </div>

js

1$(function(){ 2 $('button').on('click',function(){ 3 switch($(this).text()){ 4 case "確認画面": 5 case "もどる": 6 $('.form-area:eq(0),.form-area:eq(1)').toggleClass("active"); 7 break; 8 case "送信": 9 $('.form-area:eq(1),.form-area:eq(2)').toggleClass("active"); 10 break; 11 case "フォーム入力に戻る": 12 $('.form-area:eq(0),.form-area:eq(2)').toggleClass("active"); 13 break; 14 } 15 }); 16});

現在このようなコードになっています。(jsは表示切り替えのみです。)

この状態で、エリア1で入力した情報をページ遷移をせずに
エリア2に反映させることは可能でしょうか?
加えてその情報を引き継いだままメールを送信することは可能でしょうか?
調べてみましたがajaxを使うのが一般的な気がしますが、ajaxを扱ったことがなく
どう調べていいかも不明なため質問いたしました。
ご教授よろしくお願いいたします。

したい動きをしているサイトを見つけたので貼っておきます。
以下のページの下にあるフォームのような動きを実現したいと考えています。
https://mining.gmo.jp/

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

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

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

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

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

guest

回答2

0

まず最初のform内にある、いらない閉じタグ「</div>」が悪さをしているので取って下さい。
またスタイルシートなど記載がないので全部表示されています。

ちょっと質問の意図がわからないのですが
単にsubmitしたいのでしょうか?
それともバックグラウンドでsubmitしたいのでしょうか?

前者ならbottonの処理に親のformをsubmitする記述をする
後者ならajaxで表記する必要があります。
ちなみに飛び先の処理が書いていないのでそれがフォームメールとして
有効かどうかはわかりません

投稿2018/03/02 11:49

編集2018/03/02 11:52
yambejp

総合スコア114777

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

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

MeB

2018/03/05 00:04

意図が伝わらず申し訳ございませんでした。 質問を訂正しました。
guest

0

ベストアンサー

簡単なのはgetとpostのあわせ技ですかねー。
関係ないフォームはそもそもHTMLにすら含ませません。

1点注意すべきは「<form></form>の外にあるsubmitボタン押しても何も送信しないよ」ってことですね。
form内に入れてください。
あとインデントのレベルが合ってないように思うので、調整した方が良いですね。

php

1<?php 2if(!array_key_exists("mode",$_GET)){ 3 $mode = "input"; 4}else{ 5 $mode = $_GET["mode"]; 6} 7 8switch($mode){ 9 case "input": 10 $next_mode = "confirm"; 11 $next_button = "確認画面"; 12 $form = <<<EOF 13省略 14EOF; 15 16 break; 17 case "confirm": 18 $next_mode = "end"; 19 $next_button = "送信"; 20 $form = <<<EOF 21省略 22EOF; 23 24 break; 25 case "end": 26 $next_mode = "input"; 27 $next_button = "フォーム入力に戻る"; 28 $form = <<<EOF 29<p>送信しました</p> 30EOF; 31 32} 33 34echo <<< EOF 35<form action="hogehoge.php?mode={$next_mode}" method="post" accept-charset="utf-8"> 36 <div class="form-area active"> 37 <h3 class="blue-title">お問い合わせフォーム</h3> 38 {$form} 39 <div class="submit"><button>{$next_button}</button></div> 40 </div> 41</form> 42 43EOF;

戻るボタンとかsubmitボタンのcssクラスとか色々省略していますが、
その辺りは調整してください。

# 追記

今回の質問にPHPコードが一切ないことと、これまでの質問を拝見したところから察するに、
まだまだPHPで(入力フォームの)データを扱うところの理解が低いように見受けられます。
色々とやりたいのは分かりますが、段階をおってやっていくことが逆に近道となり、
できることの幅が広くなります。
もっと基本のところから学んでいき、動作を含めた装飾については後々あわせていくようにしてはいかがでしょうか。

投稿2018/03/05 01:31

編集2018/03/05 01:53
m.ts10806

総合スコア80850

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

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

m.ts10806

2018/03/05 01:45 編集

意図が伝わっていないようであれば伝わるように修正すれば良いだけです。 新しい質問をたてる必要はありません。 質問編集して対応してください。
MeB

2018/03/05 01:52

しました。
m.ts10806

2018/03/05 01:54

追記しています。 全部一気にやろうとしては自身のスキルとやりたいこととのギャップが大きすぎて追いつかなくなります。 自身が理解できることから、少し上のレベルのことを着実に理解して進めてください。
MeB

2018/03/05 03:28

たしかにそうですね・・・。 まとめてではなく詰まった部分部分でしらべ不明だった点を質問するようにします。
m.ts10806

2018/03/05 04:08

そうですね。がんばってください。 ただ部分部分で進めて詰まったときに質問するのは良いのですが、質問が部分過ぎたりすると完成品がツギハギでおかしくなることがあります。 大目的はきちんと質問に書く必要があるのでそこは注意してください。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問