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

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

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

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

Smarty

Smartyは、PHPアプリケーションで使用されるテンプレートエンジンです。

HTML

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

Q&A

解決済

1回答

4851閲覧

別<form>タグの値を取得する方法

rrr_s

総合スコア19

PHP

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

Smarty

Smartyは、PHPアプリケーションで使用されるテンプレートエンジンです。

HTML

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

0グッド

0クリップ

投稿2020/04/07 06:09

お世話になっております。
PHP/HTML初心者です。

html

1//検索フォーム 2<form name="form" method=POST action="{{$SCRIPT_NAME}}"> 3 <input type=hidden name=name value="検索"> 4 //検索パラメータ 5 <input type="text" name="aaa" value="ユーザー入力値"> 6     <input type="checkbox" name="bbb" id="ccc" value="ユーザー入力値"> 7</form> 8 9//ダウンロードフォーム 10<form name="form" method=POST action="{{$SCRIPT_NAME}}"> 11 <input type=hidden name=name value="ダウンロード"> 12 //ダウンロードパラメータ 13</form> 14

上記、ダウンロードフォーム内のダウンロードパラメータに、
検索フォーム内の検索パラメータをそのまま渡したいと考えております。
(どちらもパラメータを引数にSQLを発行し結果を表示/ダウンロードいたします)

ここで疑問なのですが、
別form内のパラメータを引き継ぐことは可能なのでしょうか?

拙い日本語で申し訳ございません。
ご教示をお願いできますと幸いです。

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

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

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

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

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

guest

回答1

0

ベストアンサー

引き継ぐというより2つのformから別のフォームを作るとよいです。

投稿2020/04/07 06:31

yambejp

総合スコア116724

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

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

yambejp

2020/04/07 06:33 編集

<?PHP print_r($_POST); ?> <script> window.addEventListener('DOMContentLoaded', ()=>{ document.querySelector('#f2').addEventListener('submit',e=>{ e.preventDefault(); var fd1=new FormData(document.querySelector('#f1')); var fd2=new FormData(document.querySelector('#f2')); var form=Object.assign(document.createElement('form'),{method:e.target.getAttribute('method')||"get"}); form.addEventListener('formdata',ev=>{ ([...fd1].concat([...fd2])).forEach(([name,value])=>{ ev.formData.append(name,value); }); }); document.querySelector('body').appendChild(form); form.submit(); }); }); </script> <form name="form" method="POST" id="f1"> <input type="hidden" name="name" value="検索"> <input type="text" name="aaa" value="ユーザー入力値"> <input type="checkbox" name="bbb" id="ccc" value="ユーザー入力値"> <input type="submit" value="send"> </form> <form name="form" method="POST" id="f2"> <input type="hidden" name="name" value="ダウンロード"> <input type="submit" value="send"> </form>
yambejp

2020/04/07 06:36

上記例のようにname=nameが競合する場合、PHPでは あとから指定されたf2側の方が優先されます
rrr_s

2020/04/07 09:08

yambejp様 ご回答ありがとうございます。 こちら見落としてしまっており、再度の質問をさせていただいていた次第です。 上記ですが、無知で大変恐縮なのですが、 「2つのformから別のformをつくる」とは、 JavaScriptを用いて何を行っているのでしょうか‥?
yambejp

2020/04/07 09:09

f1の要素をf2に引き継ぐのではなく f1とf2から新しいformをつくって送るという意味です あとは挙動があっているかどうかで判断してください
yambejp

2020/04/08 03:52

すみません、よく考えたら追加しないでもできました <?PHP print_r($_POST); ?> <script> window.addEventListener('DOMContentLoaded', ()=>{ document.querySelector('#f2').addEventListener('submit',e=>{ e.preventDefault(); var f=e.target; var fd1=new FormData(document.querySelector('#f1')); var fd2=new FormData(document.querySelector('#f2')); f.addEventListener('formdata',e=>{ [[...fd1],[...fd2]].flat().forEach(([name,value])=>{ e.formData.append(name,value); }); }); f.submit(); }); }); </script> <form name="form" method="POST" id="f1"> <input type="hidden" name="name" value="検索"> <input type="text" name="aaa" value="ユーザー入力値"> <input type="checkbox" name="bbb" id="ccc" value="ユーザー入力値"> <input type="submit" value="send"> </form> <form name="form" method="POST" id="f2"> <input type="hidden" name="name" value="ダウンロード"> <input type="submit" value="send"> </form>
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問