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

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

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

EJSは、JavaScript用のテンプレートエンジン。HTMLなどのテンプレートテキストにJavaScriptのロジックを記述することができます。また、変数・関数の実行をテンプレートテキスト内に埋め込むことも可能です。

HTML5

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

Node.js

Node.jsとはGoogleのV8 JavaScriptエンジンを使用しているサーバーサイドのイベント駆動型プログラムです。

POST

POSTはHTTPプロトコルのリクエストメソッドです。ファイルをアップロードしたときや入力フォームが送信されたときなど、クライアントがデータをサーバに送る際に利用されます。

JavaScript

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

Q&A

解決済

1回答

1077閲覧

ejsの変数を裏でnode.jsに引き渡したい

退会済みユーザー

退会済みユーザー

総合スコア0

EJS

EJSは、JavaScript用のテンプレートエンジン。HTMLなどのテンプレートテキストにJavaScriptのロジックを記述することができます。また、変数・関数の実行をテンプレートテキスト内に埋め込むことも可能です。

HTML5

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

Node.js

Node.jsとはGoogleのV8 JavaScriptエンジンを使用しているサーバーサイドのイベント駆動型プログラムです。

POST

POSTはHTTPプロトコルのリクエストメソッドです。ファイルをアップロードしたときや入力フォームが送信されたときなど、クライアントがデータをサーバに送る際に利用されます。

JavaScript

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

0グッド

0クリップ

投稿2022/06/16 06:22

ejsの変数を裏でnode.jsに引き渡したいです。

まずやりたいこととしては、ユーザーがEXITボタンを押したとき、node.jsに変数numberをpostする。
という内容です。

htmlからnode.jsにpostできるのはinputやselect属性だけなのでしょうか...
また、変数をpostする用のタグがほかにもあるのでしょうか...

初心者質問ではございますが、回答していただけると幸いです。

ejs

1<!DOCTYPE html> 2<html lang="en"> 3<head> 4 <meta charset="UTF-8"> 5 <meta http-equiv="X-UA-Compatible" content="IE=edge"> 6 <meta name="viewport" content="width=device-width, initial-scale=1.0"> 7 <title>Document</title> 8</head> 9<body> 10 <form action="/postsql" method="post"> 11 <header> 12 <a> 13 <h2>EXIT</h2> 14 </a> 15 </header> 16 </form> 17 -- 省略 -- 18 <script> 19 let number=12345 20 </script> 21</body> 22</html>

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

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

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

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

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

guest

回答1

0

ベストアンサー

まず結論から言うと、実現できそうな手段は色々とあります。

  • 不可視のformを設置しておいて、Exitボタンをクリックするとformをサブミットする
  • JavaScriptを学習して、裏でFetch APIを使ってサーバーに追加のHTTPリクエストを送信する

現実的な手段は前者の「不可視のformを設置」するやり方です。
参考記事: フォーム > 内容を持つボタンを作る - TAG index

button要素にはform属性があり、
配下に入ってない別のフォームに対して働きかける事が可能です。
input要素でも可能なので<input type="submit" form="example">等とやれば同じ事が実現出来るでしょう。

button要素は少々CSSで完全に好みの仕上がり事が難しいのですが、
好きな要素で好きなフォームをサブミットしたければJavaScriptを覚えましょう。


【おまけ】HTMLの役割という点で少し解説

Exitをa要素の中に入れるのはやめておきましょう。

HTMLは文書(仕様書・手引書・レポート用紙)です。
マイクロソフトのWordで表現出来るものと同程度のタグ・要素が準備されています。

a要素はアンカー(関連)です。
レポート用紙上に書いてある「関連したレポート用紙はこれですよ」という意味になるわけですね。

以上のことからa要素でExitって書いた文字列を囲んで、
その用途が「WebサーバにPostする」はおかしいです。
まぁ、そのWordみたいな物でショッピングサイトやSNSを表現してるので今更過ぎる話ではあるんですけどね。

しかし、HTMLがレポート用紙なんだよって事を覚えておけば
実際の用途と使うタグをすり合わせる事がかなりスムーズに出来るようになります。

投稿2022/06/16 07:28

miyabi-sun

総合スコア21158

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

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

退会済みユーザー

退会済みユーザー

2022/06/16 09:02

詳しく回答していただきありがとうございます!! 早速やってみます! HTMLがレポート用紙、わかりやすいw それと今後のためにもFetch APIの勉強も少し取り組んでみます! ありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.49%

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

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

質問する

関連した質問